上头给了一个需求,要通过一个网页的超链接启动本地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界面直接是嵌入在浏览器
添加回答
举报
0/150
提交
取消