我收到请求。在H5页面中,当用户单击下载时,将判断该应用程序是否已安装在手机上。如果已经安装,它将直接打开,否则将下载该应用。
这种需求只需要关注android,并且架构已经存在。
我尝试使用iframe和Timer来控制打开或下载,但是仍然存在一些问题,当浏览器打开该应用程序时,将确认一个弹出窗口。如果用户忽略它,仍然会执行下载。用户体验很糟糕。是否有更优雅的解决方案?
我的代码如下:
var isInstalled;
var ifrSrc = "launchxyjqb://";
var ifr = document.createElement('iframe');
ifr.src = ifrSrc;
ifr.style.display = 'none';
ifr.onload = function() {
isInstalled = true;
};
ifr.onerror = function() {
isInstalled = false;
};
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
if(!isInstalled){
window.location.href = commonConfig.appDownloadUrl.android;//download url
}
},2000);
如果您可以直接确定应用程序是否已经安装,则此问题应该很容易解决。