1.構建assets/web文件夾
2.建立index.htmljavascript
你的html代碼
3.使用本地web資源html
WebView mv = findViewById(...); mv.loadUrl("file:///android_asset/web/index.html")
@JavascriptInterface public void test(){ Log.e("測試","===="); }
@JavascriptInterface 在新版本的api內必須 不然無效果java
WebView mv = findViewById(...); mv.addJavascriptInterface(this,"activity") mv.loadUrl("file:///android_asset/web/index.html")
window.activity.test()
WebView mv = findViewById(...); mv.getSettings().setJavaScriptEnabled(true); mv.loadUrl("javascript:alert('test')");
js對象android
var callbacks = { fns:[], add(fn){this.fns.push(fn);return this.fns.length-1;}, get(id){return this.fns[id];} }
注入方式web
WebView vc = findViewById(...); vc.getSettings().setJavaScriptEnabled(true); vc.setWebViewClient(new WebViewClient(){ @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); vc.loadUrl("javascript:js代碼"); } });
@JavascriptInterface public void callback(String msg,int callback_id){ mHandler.post(new Runnable() { @Override public void run() { WebView vc = findViewById(...); vc.getSettings().setJavaScriptEnabled(true); vc.loadUrl("javascript:callbacks.get("+callback_id+")('"+msg+"')"); } }); }
var callback_id = callbacks.add(function(msg){ alert(msg) }); window.activity.callback("測試",callback_id)
基礎交互就是這樣了api