需求:
app要用h5页面做展示,而且要获取到对应的商品id,用户点击h5页面跳回app原生页面。
方法:
先要判断用户是ios还是android设备(这里只考虑ios跟android,因为它俩写法还是有点不一样,所以分开),然后禁止掉h5页面的跳转,获取点击区域的id,传给app。
ios:其中godetail是ios他们要调用的方法,data就是id值,type是类型 有其它参数的时候可以传给app
var u = navigator.useragent; //获取用户设备
var isios = !!u.match(/\(i[^;]+;( u;)? cpu.+mac os x/); //ios终端
$("a").click(function(){
var href = $(this).attr("data-href");
if (isios && window.webviewjavascriptbridge) { //ios app 设备才执行
$(this).attr("href","javascript:;");//禁止h5页面跳转
webviewjavascriptbridge.callhandler('godetail', {"data": href,'type':"1"}, function(){
});
return false;
}
});
android:在安卓代码里面调用h5里面写的一个方法gotoandroidapp(),然后他们获取goodsdetail参数的值,第一个为id,第二个为type值,有其它参数的时候可以依次传多个
// 安卓app才调用的方法
function gotoandroidapp() {
$("a").click(function(){
$(this).attr("href","javascript:;");
var href = $(this).attr("data-href");
window.androidvik.goodsdetail(href,1);
return false;
});
}
完整的案例:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scale=no">
<title>对接app</title>
</head>
<body>
<div>
<a href="index.html" data-href="1">ios点击按钮</a>
</div>
<div>
<a href="index.html" data-href="2">android点击按钮</a>
</div>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
var u = navigator.useragent; //获取用户设备
var isios = !!u.match(/\(i[^;]+;( u;)? cpu.+mac os x/); //ios终端
$("a").click(function(){
var href = $(this).attr("data-href");
if (isios && window.webviewjavascriptbridge) { //ios app 设备才执行
$(this).attr("href","javascript:;");//禁止h5页面跳转
webviewjavascriptbridge.callhandler('godetail', {"data": href,'type':"1"}, function(){
});
return false;
}
});
// 安卓app才调用的方法
function gotoandroidapp() {
$("a").click(function(){
$(this).attr("href","javascript:;");
var href = $(this).attr("data-href");
window.androidvik.goodsdetail(href,1);
return false;
});
}
</script>
</body>
</html>
以上就是h5跟ios、android数据对接的方式的详细内容。