+
95
-

回答

比如我想通过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() {
// #ifdef APP-PLUS
var args= plus.runtime.arguments;
let _para = args.split('?')[1]
if(args && para){
console.log(para)
}
// #endif

},

那么浏览器打开一个网页怎么唤醒app呢

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>


网友回复

我知道答案,我要回答