web端使用WebViewJavascriptBridge實現與ios和android原生交互


第一步:

/*這段代碼是固定的,必須要放到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端分別注冊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM