分安卓和IOS,安卓可以直接调用,iso需要通过桥来调用
1 2 3 4 5 6 7 8 9 10 11 12 13
   | var u = navigator.userAgent; if(u.indexOf('Android') > -1 || u.indexOf('Adr') > -1){ //android终端   let appData = window.android.原生方法(参数);   if (appData) {//返回值          } }else if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){ //ios终端   utils.setupWebViewJavascriptBridge((bridge)=>{     bridge.callHandler('原生方法',参数, function (response) {     	// response返回值     });   }) }
   | 
 
ISO的桥
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | function setupWebViewJavascriptBridge(callback) {    if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }    if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }    window.WVJBCallbacks = [callback]; // 创建一个 WVJBCallbacks 全局属性数组,并将 callback 插入到数组中。    var WVJBIframe = document.createElement('iframe'); // 创建一个 iframe 元素    WVJBIframe.style.display = 'none'; // 不显示    WVJBIframe.src = 'https://__bridge_loaded__';    // WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'; // 设置 iframe 的 src 属性    document.documentElement.appendChild(WVJBIframe); // 把 iframe 添加到当前文导航上。    setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0) }
 
 
 
  |