首先引入交互函数
// 与原生交互接口框架
function setupWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener(
'WebViewJavascriptBridgeReady'
, function () {
callback(WebViewJavascriptBridge)
},
false
);
}
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)
}
使用交互函数进行交互
setupWebViewJavascriptBridge(function (bridge) {
var data = {
commodityCode: code
}
//参数1: pay 注册flag 供原生使用,要和原生统一
//参数2: 是调起原生时向原生传递的参数
//参数3: 原生调用回调返回的数据
bridge.callHandler('gotoGoodsDetailHandler', data, function (resp) {
// alert("app返回数据", resp)
});
})
setupWebViewJavascriptBridge(function (bridge) {
//注册原生调起方法
//参数1: buttonjs 注册flag 供原生使用,要和原生统一
//参数2: data 是原生传给js 的数据
//参数3: responseCallback 是js 的回调,可以通过该方法给原生传数据
bridge.registerHandler("sendGoodsParas", function (data, responseCallback) {
responseCallback(that.commodityType);
});
})
网友评论