安卓:
window.AndroidWebView.方法名(参数);window.AndroidWebView.productDetail(1989);ios:
function isbrowser() {
// 浏览器判断
return window.browser = {
versions: function () {
var u = navigator.userAgent,
app = navigator.appVersion;
return { //移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
};
}
var productDetail;
function InitWebViewJavascriptBridge(callback) {
var ua = window.navigator.userAgent.toLowerCase();
if (window.AndroidWebView || !isbrowser().versions.ios || ua.match(/MicroMessenger/i) == 'micromessenger') {
return;
}
function _callback(bridge) {
window.WebViewJavascriptBridge = bridge;
if (callback) callback(bridge);
}
if (window.WebViewJavascriptBridge) {
_callback(WebViewJavascriptBridge);
return;
}
if (window.WVJBCallbacks) {
window.WVJBCallbacks.push(_callback);
return;
}
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)
}
InitWebViewJavascriptBridge(function (bridge) {
productDetail = function (id) {
//注入handlerName为IOSEventClick
bridge.callHandler('IOSEventClick', {
code: id,
type: "productDetail",
}, function (responseData) {
// log('IOSEventClick', responseData);
})
}
});