1. 程式人生 > >H5跟ios、android數據對接

H5跟ios、android數據對接

itl 獲取 os x doc char body round lan ttr

需求:

  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跟ios、android數據對接