需求:
APP要用H5頁(yè)面做展示,而且要獲取到對(duì)應(yīng)的商品ID,用戶點(diǎn)擊H5頁(yè)面跳回APP原生頁(yè)面。
方法:
先要判斷用戶是ios還是android設(shè)備(這里只考慮ios跟android,因?yàn)樗鼈z寫法還是有點(diǎn)不一樣,所以分開(kāi)),然后禁止掉H5頁(yè)面的跳轉(zhuǎn),獲取點(diǎn)擊區(qū)域的ID,傳給APP。
ios:其中g(shù)oDetail是ios他們要調(diào)用的方法,data就是ID值,type是類型 有其它參數(shù)的時(shí)候可以傳給APP
1 var u = navigator.userAgent; //獲取用戶設(shè)備? 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 設(shè)備才執(zhí)行 7 $(this).attr("href","javascript:;");//禁止H5頁(yè)面跳轉(zhuǎn)? 8 WebViewJavascriptBridge.callHandler('goDetail', {"data": href,'type':"1"}, function(){? 9? 10 }); 11 return false; 12? 13 } 14 });
android:在安卓代碼里面調(diào)用H5里面寫的一個(gè)方法gotoAndroidApp(),然后他們獲取goodsDetail參數(shù)的值,第一個(gè)為ID,第二個(gè)為type值,有其它參數(shù)的時(shí)候可以依次傳多個(gè)
1 // 安卓app才調(diào)用的方法 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>對(duì)接app</title>? 7 </head>? 8 <body> 9 <div class="ios"> 10 <a href="index.html" data-href="1">ios點(diǎn)擊按鈕</a> 11 </div> 12 <div class="android"> 13 <a href="index.html" data-href="2">android點(diǎn)擊按鈕</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; //獲取用戶設(shè)備 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 設(shè)備才執(zhí)行 23 $(this).attr("href","javascript:;");//禁止H5頁(yè)面跳轉(zhuǎn) 24 WebViewJavascriptBridge.callHandler('goDetail', {"data": href,'type':"1"}, function(){ 25 26 }); 27 return false; 28 } 29 }); 30 // 安卓app才調(diào)用的方法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>
(轉(zhuǎn)自博客園)
· 學(xué)IT,就來(lái)中公優(yōu)就業(yè):http://www.ujiuye.com/
· 2017年【中公教育】特別推出2017年就業(yè)促進(jìn)計(jì)劃,500萬(wàn)就業(yè)基金助你成為IT達(dá)人
詳情請(qǐng)戳http://www.ujiuye.com/zt/jycj/?wt.bd=bgz