关键字
Web 前端开发与 iOS 前端开发之间的数据交互,需要借助 JavaScript 封装的特定的方法来实现两者之间的逻辑业务交互
1function setupWebViewJavascriptBridge(callback) { 2 if (window.WebViewJavascriptBridge) { 3 return callback(WebViewJavascriptBridge); 4 } 5 if (window.WVJBCallbacks) { 6 return window.WVJBCallbacks.push(callback); 7 } 8 window.WVJBCallbacks = [callback]; 9 var WVJBIframe = document.createElement("iframe"); 10 WVJBIframe.style.display = "none"; 11 WVJBIframe.src = "wvjbscheme://__BRIDGE_LOADED__"; 12 document.documentElement.appendChild(WVJBIframe); 13 setTimeout(function () { 14 document.documentElement.removeChild(WVJBIframe); 15 }, 0); 16}
JavaScript 与 iOS App 之间数据交互时,需要借助封装好的 setupWebViewJavascriptBridge方法来实现两端开发之间的逻辑数据交互问题。
1setupWebViewJavascriptBridge(function (bridge) { 2 bridge.callHandler('iOS事件名', {'参数param'}, function responseCallback(responseData) { }); 3});
1setupWebViewJavascriptBridge(function (bridge) { 2 bridge.registerHandler("jsFn", function (json) { 3 var param = JSON.parse(json); // 数据类型转换 4 jsFn(param); 5 }); 6});
1window.android.AndroidEventName(params); // params为传递给Android app的参数值