原生_H5交互插件(适用于与V2.1)
这是js代码
/* * 适合版本为 2.1.0 * 前提是url上加 from=app */ var Native = {}; var ua = navigator.userAgent; var oUrl = location.search; var tc = /from=app/i; //原生H5交互 function C_interaction(a,b){ if(tc.test(oUrl)){ //1.checkLogin js调native 判断登录 有回调 有参数 if(b=="checkLogin"){ Native.checkLogin = function(n){ a(n); }; var parameter = '{"obj":"Native","funcName":"checkLogin"}'; yinhu.checkLogin(parameter); } //2.loginAction js调native 调用登录 有回调 有参数 else if(b=="loginAction"){ Native.loginAction =function(n){ a(n); }; var parameter = '{"obj":"Native","funcName":"loginAction"}'; yinhu.loginAction(parameter); } //3.productListAction js调native 产品列表 无回调 无参数 else if(b=="productListAction"){ yinhu.productListAction(); } //4.dialService js调native 拨打客服 无回调 有参数 else if(b=="dialService"){ var C_phone = a(); yinhu.dialService(C_phone) } //5.checkAppVersion js调native 版本号 有回调 有参数 else if(b=="checkAppVersion"){ Native.checkAppVersion = function(n){ a(n); }; var parameter = '{"obj":"Native","funcName":"checkAppVersion"}'; yinhu.checkAppVersion(parameter); } //待优化部分 //6.registerAction js调native 注册 无回调 有参数 else if(b=="registerAction"){ if(ua.indexOf('iPhone') >= 0||ua.indexOf('iPad') >= 0){ location.href="inyinhu://yinhu/router/?buttonAction=register&code="+a(); } else if(ua.indexOf('Android') >= 0){ var C_code = a; yinhu.registerAction(C_code) } } //7.native调js 分享功能 无回调 有参数 else if(b=="shareAction"){ var a = a(); if(ua.indexOf('iPhone') >= 0||ua.indexOf('iPad') >= 0){ location.href="inyinhu://yinhu/router/?buttonAction=socialShare&title="+a.title+"&content="+a.content+"&contentURL="+a.contentURL+"&imageURL="+a.imageURL; } else if(ua.indexOf('Android') >= 0){ var C_code = {"title":a.title, "content":a.content, "contentURL":a.contentURL, "imageURL":a.imageURL, "shareFrom":a.shareFrom, "shareFromCode":a.shareFromCode }; var C_code = JSON.stringify(C_code); yinhu.shareAction(C_code); } } //8.shareResult native调js 分享回调 js方函数 else{ console.log("参数错误") } }else { console.log("url没有from=app") } };
这是html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="format-detection" content="telephone=no">
<title>H5与native交互demo</title>
<link rel="stylesheet" type="text/css" href="reset.css"/>
<script src="flexible-min.js"></script>
</head>
<style type="text/css">
button{
display: block;
margin:0 auto;
margin-top: 1rem;
width: 5rem;
height: 2rem;
color: #666666;
}
</style>
<body>
<div class="M_body">
<button id="btn1">判断登录</button>
<button id="btn2">调用登录</button>
<button id="btn3">产品列表</button>
<button id="btn4">拨打客服</button>
<button id="btn5">版本号</button>
<button id="btn6">注册</button>
<button id="btn7">分享功能</button>
<button id="btn8">分11享功能</button>
</div>
<script src="H5_Native.js"></script>
<script src="zepto.min.js"></script>
<script>
$("#btn1").tap(function(){
//1. 判断登录 js调native 有回调 有参数
C_interaction(function(n){
// App 已登录 n 是 {mobileNo:"xxx",userNm:"xxx"}
// App 未登录 ios n=null 安卓不回调
alert(n);
alert(n.mobileNo);
alert(n.userNm);
},"checkLogin");
});
$("#btn2").tap(function(){
//2.调用登录 js调native 有回调 有参数
C_interaction(function(n){
// n 是 {mobileNo:"xxx",userNm:"xxx"}
alert(n);
alert(n.mobileNo);
alert(n.userNm);
},"loginAction");
});
$("#btn3").tap(function(){
//3.产品列表 js调native 无回调 无参数
C_interaction(function(n){
// 无回调 无参数 跳转到产品列表
},"productListAction");
});
$("#btn4").tap(function(){
//4.拨打客服 js调native 无回调 有参数
C_interaction(function(n){
// 返回字符串 电话号码
return "18832581538";
},"dialService");
});
$("#btn5").tap(function(){
//5.版本号 js调native 有回调 有参数
C_interaction(function(n){
// n 是 {version:"2.1.1"}
alert(n.version)
},"checkAppVersion");
});
$("#btn6").tap(function(){
//6.注册 js调native 无回调 有参数
C_interaction(function(n){
//返回1 新手注册
var n="1";
return n;
},"registerAction");
});
$("#btn7").tap(function(){
//7. 分享功能 native调js 无回调 有参数
C_interaction(function(n){
// 返回要分享的内容
return {
title:"标题",
content:"分享内容",
contentURL:"https://www.baidu.com/",//内容链接
imageURL:"https://www.baidu.com/", //图片链接
shareFrom:"分享来源",
shareFromCode:"分享来源编码"
};
},"shareAction");
//8. js的方法
Native.shareResult=function(n){
alert("分享功能:"+n.result);
};
});
$("#btn8").click(function(){
alert("1")
location.href="inyinhu://yinhu/router/?buttonAction=productList&code=1";
})
/*
* 适用于app 2.1.0
* 1.checkLogin js调native 判断登录 有回调 有参数
* 2.loginAction js调native 调用登录 有回调 有参数
* 3.productListAction js调native 产品列表 无回调 无参数
* 4.dialService js调native 拨打客服 无回调 有参数
* 5.checkAppVersion js调native 版本号 有回调 有参数
* 6.registerAction js调native 注册 无回调 有参数
* 7.shareAction js调native 分享功能 无回调 有参数
* 8.shareResult native调js 分享回调 无回调 有参数
*/
</script>
</body>
</html>
浙公网安备 33010602011771号