比如我想通过bfw://wiki.bfw?123 这个url地址来打开我的uniapp
那么
找到Manifest -> sourceview (源码视图)
app-plus --> distribute --> android 添加 "schemes" : [ "bfw" ],
例如 App-plus{
"distribute" : {
"android" : {
"schemes" : [ "bfw" ],
"permissions" : [ //… ]
},
}
}
ios则在Android后面的节点
"ios" : {
"urltypes" : [ {
"urlidentifier" : "wiki.bfw", // 一般为域名倒写,例如 bfw.wiki
"urlschemes" : [ "bfw" ]
} ],
"urlschemewhitelist" : [ "bfw" ],
}, ‘
App.vue 页面捕获参数并使用emit传递:
onShow: function() {那么浏览器打开一个网页怎么唤醒app呢
// #ifdef APP-PLUS
var args= plus.runtime.arguments;
let _para = args.split('?')[1]
if(args && para){
console.log(para)
}
// #endif
},
andriod通过新建iframe,ios则是通过location.href,微信中的则是弹出在浏览器中打开提示,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
</head>
<style>
.hide{
display: none;
}
</style>
<body>
<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("para")
if(isiOS){
location.href = "bfw://wiki.bfw?" + para
}else{
var appOpenUrl = "bfw://wiki.bfw?" + para
//在iframe 中打开APP
var ifr = document.createElement('iframe');
ifr.src = appOpenUrl;
ifr.style.display = 'none';
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
}, 2000);
}
};
//是否是微信判断
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
$('.mark').removeClass("hide")
}else{
openApp()
}
})
</script>
</body>
</html>
网友回复