android端网页超链接调用native app为什么在QQ,UC浏览器内部打开了应用,Chrome没有任何问题
上头给了一个需求,要通过一个网页的超链接启动本地app,但是在网上查了相关资料都是通过自定义URL Schemes协议来启动app,代码如下:
//android端xml配置
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="test" android:host="gw" android:pathPrefix="/open" android:port="8888"/>
</intent-filter>
//js代码:
var t;
var config = {
scheme_IOS: 'appB://',
scheme_Adr: 'test://gw:8888/open',
download_url: "http://mb.sseinfo.com/ComInfoServer/ssegwappdownload.jsp",
timeout: 600
};
function startApp(){
var startTime = Date.now();
if(isWeiXin()){
alert("请在浏览器中打开!");
}else{
var iframe = document.createElement("iframe");
if(checkOS()){
iframe.src=config.scheme_Adr;
}else{
iframe.src=config.scheme_IOS;
}
iframe.style.display = "none";
document.body.appendChild(iframe);
t = setTimeout(function() {
var endTime = Date.now();
if (!startTime || endTime - startTime < config.timeout + 20) {
window.location = config.download_url;
} else {
}
}, config.timeout);
window.onblur = function() {
clearTimeout(t);
}
}
}
那么问题就是,除了Chrome可以,在qq,UC浏览器中都会在浏览器内部启动app,在手机后台进程中并没有启动新的app,整个app界面直接是嵌入在浏览器
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不能明白你后半问题,你的应用嵌入浏览器了?如果你是想问为什么在配置了scheme的情况下chrome浏览器能启动应用而qq/uc浏览器不能,那倒是可以直接解答的问题,qq/uc/wechat的浏览器都有应用白名单过滤,对scheme跳转做了限制,联系他们审核,合作,加钱吧。