Android在WebView中載入HTML並實現互動
正在開發一個地圖程式, 相對於用XML寫安卓介面, 我更願意用這個方法, 就是不用Android自帶的MapView, 而是使用之前就已經比較熟悉的Google Maps JavaScript API, 在Android的WebView中載入HTML程式碼, 利用Android提供的強大的Java與Js的互動功能, 用網頁作為介面來開發程式,同時也可以用Js回撥機器的本地功能比如GPS等.
下面提供一個演示的例子,程式碼如下:
package com.aloong.map; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.webkit.WebSettings; import android.webkit.WebView; 9public class MyMap extends Activity { private static String TAG = MyMap.class.getName(); private WebView mWebView; private Handler mHandler; private WebSettings mWebSettings; /** *//** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) this.findViewById(R.id.webview); mHandler = new Handler(); // 設定支援JavaScript等 mWebSettings = mWebView.getSettings(); mWebSettings.setJavaScriptEnabled(true); mWebSettings.setBuiltInZoomControls(true); mWebSettings.setLightTouchEnabled(true); mWebSettings.setSupportZoom(true); mWebView.setHapticFeedbackEnabled(false); // mWebView.setInitialScale(0); // 改變這個值可以設定初始大小 //重要,用於與頁面互動! mWebView.addJavascriptInterface(new Object() { @SuppressWarnings("unused") public void oneClick(final String locX, final String locY) {//此處的引數可傳入作為js引數 mHandler.post(new Runnable() { public void run() { mWebView.loadUrl("javascript:shows(" + locX + "," + locY + ")"); } }); } }, "demo");//此名稱在頁面中被呼叫,方法如下: //<body onClick="window.demo.clickOnAndroid(event.pageX,event.pageY)"> final String mimeType = "text/html"; final String encoding = "utf-8"; final String html = "";// TODO 從本地讀取HTML檔案 mWebView.loadDataWithBaseURL("file:///sdcard/", html, mimeType, encoding, ""); } }
執行以上程式碼,就可以在程式中開啟自己寫的html頁面.並且實現Java與JavaScript的雙向互動.
我們甚至可以在頁面中使用JQuery之類的框架製作出很好看的效果,而這比寫Android程式碼我覺得簡單多了.
相關文章
- Android WebView適配html載入本地檔案並上傳AndroidWebViewHTML
- Android webview JS 互動AndroidWebViewJS
- Android webview 與 js(Vue) 互動AndroidWebViewJSVue
- Android與WebView資料互動AndroidWebView
- Android WebView 中的 Html 網頁定位操作AndroidWebViewHTML網頁
- 在Flask程式中實現GitHub登入和GitHub資源互動FlaskGithub
- WebView詳解與簡單實現Android與H5互調WebViewAndroidH5
- WebView與APP互動實戰記錄WebViewAPP
- Android 8.0上webView載入url,不回撥onPageFinishedAndroidWebView
- Servlet實現、與html的簡單互動ServletHTML
- Flutter下實現WebView攔截載入離線資源FlutterWebView
- Flutter使用JsBridge與WebView互動FlutterJSWebView
- 關於在Flutter Web中載入html(持續更新中......)FlutterWebHTML
- Android Webview H5 秒開方案實現AndroidWebViewH5
- 利用HTML5,無JS實現各種互動效果HTMLJS
- 滾動載入圖片(懶載入)實現原理
- 在Linux中,什麼是負載均衡,並且如何在Linux中實現它。Linux負載
- Webview載入html後,數字會顯示藍色可點選呼叫WebViewHTML
- Flutter WebView與JS互動簡易指南FlutterWebViewJS
- iOS高階-WebView & JavaScript互動(附DEMO)iOSWebViewJavaScript
- WKWebView和WebView與JS的互動方式WebViewJS
- Android 原生和 JS 互動實踐AndroidJS
- Android中WebView的使用指南:AndroidWebView
- Android 中 WebView 的除錯方法AndroidWebView除錯
- 如何在Unity中實現水體互動?Unity
- php 自動類載入類 composer.json 實現自動載入PHPJSON
- Android WebView:這是一份 詳細 & 易懂的WebView學習攻略(含與JS互動、快取構建等)AndroidWebViewJS快取
- Android-動態載入外掛資源,皮膚包的實現原理Android
- WebView與JS的互動,以及注意事項WebViewJS
- react native ScrollView巢狀WebView 互動問題React Native巢狀WebView
- Go實現啟動引數載入Go
- Webview獨立程式並通過AIDL實現資料通訊WebViewAI
- 藉助HTML5details,summary無JS實現各種互動效果HTMLAIJS
- 在Linux中,如何實現負載均衡?Linux負載
- 在 Python 中實現函式過載Python函式
- Flutter 實現webview與原生元件組合滑動FlutterWebView元件
- Android 動畫實現Android動畫
- 深入解析Spring AI框架:在Java應用中實現智慧化互動的關鍵SpringAI框架Java
- 優化 WebView 的載入速度例項優化WebView