-
Notifications
You must be signed in to change notification settings - Fork 0
Home
###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)});