- JS 调用 native 的 handler(JS 发起请求)
window.WebViewJavascriptBridge.callHandler(
'handlerName', // 调用 native 的 handler
data, // 传数据给 native
function(res) {
// 接收 native 返回的数据 res
}
);
- Native 调用 JS 的方法(提供 handler 给 native)
//注册事件监听
function connectWebViewJavascriptBridge(callback) {
// Android
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener(
'WebViewJavascriptBridgeReady',
function() {
callback(WebViewJavascriptBridge)
},
false
);
}
// iOS
if (window.WebViewJavascriptBridge) {
return callback(WebViewJavascriptBridge);
}
if (window.WVJBCallbacks) {
return window.WVJBCallbacks.push(callback);
}
window.WVJBCallbacks = [callback];
var WVJBIframe = document.createElement('iframe');
WVJBIframe.style.display = 'none';
WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
document.documentElement.appendChild(WVJBIframe);
setTimeout(function(){
document.documentElement.removeChild(WVJBIframe)
}, 0);
}
connectWebViewJavascriptBridge(function(bridge) {
// 注册一个 JavaScript Handler,native 调用时执行 H5 操作
bridge.registerHandler("handlerName", function(data, responseCallback) {
// 接收来自 native 的数据 data
console.log(data);
// 返回数据给 Native
var res = "Response Data";
responseCallback(res);
});
// Android初始化,必须
bridge.init(function(message, responseCallback) {
// 接收来自 native 的数据 message
console.log(message);
// 返回数据给 Native
var res = "Response Data";
responseCallback(res);
});
});
您的赞助将会支持作者创作及本站运维
评论
共1条满满干货,很实用,感谢
发表评论