博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js调用ios和安卓方法
阅读量:6423 次
发布时间:2019-06-23

本文共 1974 字,大约阅读时间需要 6 分钟。

安卓:

 

[html]
 
  1. window.AndroidWebView.方法名(参数);  
[html]
 
  1. window.AndroidWebView.productDetail(1989);  
ios:
[html]
 
  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]
 
  1. var productDetail;  
[html]
 
  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.        }); 

转载地址:http://harra.baihongyu.com/

你可能感兴趣的文章
wpf窗体定位
查看>>
[Algorithms] Insertion sort algorithm using TypeScript
查看>>
SpringBoot+gradle项目构建war
查看>>
Python使用MySQL数据库【转】
查看>>
Android蓝牙——HID开发
查看>>
Android 自定义Dialog中加EditText弹不出键盘跟Dialog遮挡键盘的问题
查看>>
__stdio_common_vsnprintf_s,该符号在函数 _vsnprintf_s_l 中被引用
查看>>
Linux iptables开放特定端口
查看>>
mongodb之 mongodump 与 mongorestore
查看>>
Cent OS home下中文目录改成英文目录
查看>>
dedecms调用日期格式化形式大全
查看>>
springboot结合maven打包发布
查看>>
thinkphp5的Auth权限认证实战
查看>>
Service插件化解决方案
查看>>
vc++各种连接的处理方法
查看>>
软件观点 - 软件工厂方法
查看>>
EM 【 Enterprise Manager】 的配置
查看>>
vim复制粘贴系统粘贴板
查看>>
尽量不要使用文本模式
查看>>
顶级程序员的 10 条最佳实践
查看>>