uniapp实现被浏览器唤起
1,配置UrlSchemes
在manifest.json配置
/* 应⽤发布信息 */
"distribute" : {
/* android打包配置 */
"android" : {
"schemes" : [ "CCC" ],
...
},
/* ios打包配置 */
"ios" : {
"urltypes" : [
{
"urlidentifier" : "com.BBB.AAA",
"urlschemes" : [ "CCC" ]
}
],
"urlschemewhitelist" : [ "CCC" ],
...
},
},
.
..
2,页⾯中配置
1)浏览器中可能⽆法唤起app,需要单独处理
2)safari中只能通过loaction.href唤起app
其中_inviteCode为⽹页携带的inviteCode 参数;com.BBB.AAA不⼀定⾮要写成com.BBB.AAA,后⾯的?是⼀个符号,⽤于隔开前⾯的字符串和后⾯的参数,便于在app中取参数
<div class="mark hide">
<div class="mark_info">
点击右上⾓
<br>
选择“在浏览器中打开”
</div>
</div>
<script>
$(function(){
var sys = 'android';
var isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);    //获取url参数
var GetRequest = function(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
//打开app
var openApp = function(){
var _inviteCode = GetRequest("inviteCode")
if(isiOS){
location.href = "CCC://com.BBB.AAA?" + _inviteCode
}else{
var appOpenUrl = "CCC://com.BBB.AAA?" + _inviteCode
//在iframe 中打开APP
var ifr = ateElement('iframe');
ifr.src = appOpenUrl;
ifr.style.display = 'none';
document.body.appendChild(ifr);
setTimeout(function() {
veChild(ifr);
}, 2000);
}
};
//是否是判断
var ua = window.LowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
$('.mark').removeClass("hide")
}else{
openApp()
}
})
</script>
3,在app中取参数
在uniapp项⽬中App.vue
onShow: function() {
网页app
// #ifdef APP-PLUS
var args= plus.runtime.arguments;
let _inviteCode = args.split('?')[1]
if(args && _inviteCode){
console.log(_inviteCode)
}
// #endif
},
注:
⼩⽶⼿机⾃带浏览器⽆法唤起uniapp
若是hbuilder打包web2app,可直接在manifest.json中的App常⽤其他配置中填写UrlSchemes即可,⽹页配置同以上

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。