js调用ios和安卓方法

安卓:

[html] view plain copy
 
js调用ios和安卓方法js调用ios和安卓方法
  1. window.AndroidWebView.方法名(参数);  
[html] view plain copy
 
js调用ios和安卓方法js调用ios和安卓方法
  1. window.AndroidWebView.productDetail(1989);  

ios:
[html] view plain copy
 
js调用ios和安卓方法js调用ios和安卓方法
  1. function isbrowser() {  
  2.          // 浏览器判断  
  3.          return window.browser = {  
  4.              versions: function () {  
  5.                  var u = navigator.userAgent,  
  6.                          app = navigator.appVersion;  
  7.                  return { //移动终端浏览器版本信息  
  8.                      trident: u.indexOf('Trident') > -1, //IE内核  
  9.                      presto: u.indexOf('Presto') > -1, //opera内核  
  10.                      webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核  
  11.                      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核  
  12.                      mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端  
  13.                      ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端  
  14.                      android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器  
  15.                      iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器  
  16.                      iPad: u.indexOf('iPad') > -1, //是否iPad  
  17.                      webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部  
  18.                  };  
  19.              }(),  
  20.              language: (navigator.browserLanguage || navigator.language).toLowerCase()  
  21.   
  22.          };  
  23.      }  
[html] view plain copy
 
js调用ios和安卓方法js调用ios和安卓方法
  1. var productDetail;  
[html] view plain copy
 
js调用ios和安卓方法js调用ios和安卓方法
  1.   function InitWebViewJavascriptBridge(callback) {  
  2.            var ua = window.navigator.userAgent.toLowerCase();  
  3.            if (window.AndroidWebView || !isbrowser().versions.ios || ua.match(/MicroMessenger/i) == 'micromessenger') {  
  4.                return;  
  5.            }  
  6.   
  7.            function _callback(bridge) {  
  8.                window.WebViewJavascriptBridge = bridge;  
  9.                if (callback) callback(bridge);  
  10.            }  
  11.   
  12.            if (window.WebViewJavascriptBridge) {  
  13.                _callback(WebViewJavascriptBridge);  
  14.                return;  
  15.            }  
  16.   
  17.            if (window.WVJBCallbacks) {  
  18.                window.WVJBCallbacks.push(_callback);  
  19.                return;  
  20.            }  
  21.   
  22.            window.WVJBCallbacks = [_callback];  
  23.            var WVJBIframe = document.createElement('iframe');  
  24.            WVJBIframe.style.display = 'none';  
  25.            WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';  
  26.            document.documentElement.appendChild(WVJBIframe);  
  27.            setTimeout(function () {  
  28.                document.documentElement.removeChild(WVJBIframe)  
  29.            }, 0)  
  30.        }  
  31.        InitWebViewJavascriptBridge(function (bridge) {  
  32.   
  33.            productDetail = function (id) {  
  34. //注入handlerName为IOSEventClick  
  35.               bridge.callHandler('IOSEventClick', {  
  36.                    code: id,  
  37.                    type: "productDetail",  
  38.   
  39.                }, function (responseData) {  
  40.                    // log('IOSEventClick', responseData);  
  41.                })  
  42.            }  
  43.   
  44.        });