H5+原生webview实现APP的JavascriptBridge的使用
function setupWebViewJavascriptBridge(callback) { try { 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 = 'https://__bridge_loaded__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function () { document.documentElement.removeChild(WVJBIframe) }, 0) } catch (e) { alert(e) } } IOS: function iosMethod(method, params) { setupWebViewJavascriptBridge(function (bridge) { try { if (params) { bridge.callHandler(method, params) } else { bridge.callHandler(method) } } catch (e) { alert(e) } }) } 例如: 和ios约定的回调方法名 挂载在window window.scanResult = function(){} iosMethod('scan') Android: 和Android约定的回调方法名 挂载在window window.scanResult = function(){} window.android.scan()