Skip to content
kerwinT edited this page Nov 25, 2016 · 5 revisions

###JSBridge介绍 

  JSBridge是依赖于Android系统webview的JavaScriptInterface注入机制,采用动态生成js代码并注入网页的方式达到js与java的交互目的。
  JSBridge在上面的基础上增加了动态注入的方式,动态注入方法并实现了function回调的方式。 ##注入JSBridge:
JSBridgeClient.registerJSBridge(webView, new BridgeTest(), "__JSBridgeNative");
##在每一个需要调用java方法的网页的任意位置通知JSBridge注入:
<script> if (typeof(__JSBridgeNative) != "undefined" && typeof(__JSBridgeNative.linkBridge) != "undefined") { __JSBridgeNative.linkBridge(); } </script>

##常规方法 @JavascriptInterface public void showToast(String text) { Toast.makeText(SampleActivity.this, text, Toast.LENGTH_SHORT).show(); } ##带异步回调的方法
@JavascriptInterface public void showToast(final String text, final JsCallback jsCallback) { new Thread() { public void run() { try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } runOnUiThread(new Runnable() { public void run() { try { jsCallback.apply(text + text); } catch (JsCallback.JsCallbackException e) { e.printStackTrace(); } } }); } }.start(); }

##网页中调用对应的Java方法
__JSBridgeNative.showToast('我是Toast'); __JSBridgeNative.showToast('我是Toast',function(text){console.log(text)});

Clone this wiki locally