iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0

JavaScript WebViews

WebView 是Android 其中一個元件 它可以用來在Application中顯示Web, 使得 Android 可能受網頁弱點影響 像是常見 XSS 或是 LFI, 所以盡量用系統提供 Browser 來傳遞資訊 而不是把web東西嵌入在WebView中

在比較新版本Android 預設上webView 元件的 JavaScript Execution 或 File Access 設定是Disable的

WebView範例
MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("file:///android_asset/html/index.html");
}

Android web檔案 會放在app/assets下
webview.getSettings().setJavaScriptEnabled(true) 表示內嵌 javaScript 可執行
其中的 webview.loadUrl("file:///android_asset/html/index.html") 也可以改成HTTPs 方式從外面嵌入到裡面 webview.loadUrl("https://www.google.com/") 不過會需要在AndroidManifest.xml中 開網路權限

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

Application 框架

如果從頭寫一個APP 是很有挑戰的 需要具備很多知識 所以說開發者通常會使用框架 加速開發
框架會提供很多預先定義的元件與工具可以使用 不同框架 所使用的IDE與程式可能也不同

Flutter
Flutter 是由google 開發的開源手機框架 由 Dart 編寫 使用 Flutter SDK 應用程式可以跨Android, IOS, Web, Desktop 等 透過編譯好的Native Code 提供很好的效能
主程式同常會在lib下的 .dart 檔 寫完程式後 Flutter 會把程式編成 .so file 之後我們可以用 ghidra 進行分析

使用 Frame Work 能結構化的開發 並提供一定程度的安全性


上一篇
DAY 9 Native Code
下一篇
DAY 11 Activities 上
系列文
我是不可能一直學Android 絕對不會11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言