H5跟iosandroid数据对接

Posted 正是泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5跟iosandroid数据对接相关的知识,希望对你有一定的参考价值。

需求:

  APP要用H5页面做展示,而且要获取到对应的商品ID,用户点击H5页面跳回APP原生页面。

方法:

  先要判断用户是ios还是android设备(这里只考虑ios跟android,因为它俩写法还是有点不一样,所以分开),然后禁止掉H5页面的跳转,获取点击区域的ID,传给APP。

ios:其中goDetail是ios他们要调用的方法,data就是ID值,type是类型 有其它参数的时候可以传给APP

 1 var u = navigator.userAgent; //获取用户设备
 2 var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
 3 
 4 $("a").click(function(){
 5     var href = $(this).attr("data-href");
 6     if (isIOS && window.WebViewjavascriptBridge) { //ios app 设备才执行
 7         $(this).attr("href","javascript:;");//禁止H5页面跳转
 8         WebViewJavascriptBridge.callHandler(‘goDetail‘, {"data": href,‘type‘:"1"}, function(){
 9 
10         });
11         return false;
12 
13     }
14 });

android:在安卓代码里面调用H5里面写的一个方法gotoAndroidApp(),然后他们获取goodsDetail参数的值,第一个为ID,第二个为type值,有其它参数的时候可以依次传多个

1 // 安卓app才调用的方法
2 function gotoAndroidApp() {
3     $("a").click(function(){
4         $(this).attr("href","javascript:;");
5         var href = $(this).attr("data-href");
6         window.androidVik.goodsDetail(href,1);
7         return false;
8     });
9 }

完整的案例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scale=no">
 6     <title>对接app</title>
 7 </head>
 8 <body>
 9 <div class="ios">
10     <a href="index.html" data-href="1">ios点击按钮</a>
11 </div>
12 <div class="android">
13     <a href="index.html" data-href="2">android点击按钮</a>
14 </div>
15 <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
16 <script type="text/javascript">
17 var u = navigator.userAgent; //获取用户设备
18 var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
19 
20 $("a").click(function(){
21     var href = $(this).attr("data-href");
22     if (isIOS && window.WebViewJavascriptBridge) { //ios app 设备才执行
23         $(this).attr("href","javascript:;");//禁止H5页面跳转
24         WebViewJavascriptBridge.callHandler(goDetail, {"data": href,type:"1"}, function(){
25 
26         });
27         return false;
28     }
29 });
30 // 安卓app才调用的方法
31 function gotoAndroidApp() {
32     $("a").click(function(){
33         $(this).attr("href","javascript:;");
34         var href = $(this).attr("data-href");
35         window.androidVik.goodsDetail(href,1);
36         return false;
37     });
38 }
39 </script>
40 </body>
41 </html>

 

以上是关于H5跟iosandroid数据对接的主要内容,如果未能解决你的问题,请参考以下文章

移动端h5截图与原生iosandroid的兼容交互

移动端h5截图与原生iosandroid的兼容交互

移动端h5截图与原生iosandroid的兼容交互

移动端h5截图与原生iosandroid的兼容交互

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

移动端安卓IOS对接H5项目遇到的坑