第一步:
/*這段代碼是固定的,必須要放到js中*/
function setupWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {return callback(WebViewJavascriptBridge); }
if (window.WVJBCallbacks) {return window.WVJBCallbacks.push(callback);}
document.addEventListener(
'WebViewJavascriptBridgeReady'
, function() {
WebViewJavascriptBridge.init(function(message, responseCallback) {
responseCallback(data);
});
callback(WebViewJavascriptBridge)
},
false
);
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)
}
第二步:注冊事件,此事件在ios和android必須一致
setupWebViewJavascriptBridge(function(bridge){
/*JS給ObjC提供公開的API,ObjC端通過注冊,就可以在JS端調用此API時,得到回調。ObjC端可以在處理完成后,反饋給JS,這樣寫就是在載入頁面完成時就先調用*/
bridge.callHandler('事件名稱', function(responseData) {
/*回調函數,可不要*/
})
})
第三步:事件調用,給元素綁定事件
$("#test").on('click',function(e){
window.WebViewJavascriptBridge.callHandler('注冊的事件名', 傳遞的參數, function(response) {
/*回調函數,可不要*/
})
})
第四步就剩下再ios和android端分別注冊