我需要实现一个javascript,让我可以检测我的深层链接是否工作,如果工作,那么它应该保持不变,但如果它不工作,那么它必须开始下载文件。为此,我使用超时功能来实现。这里是我使用的示例代码。
setTimeout(function () { window.location = "https://itunes.apple.com/appdir"; }, 25);
window.location = "appname://";
但是这段代码在android和ios上工作得很好,但是在桌面浏览器上却出现了问题。在桌面浏览器中,Deeplink正常工作后,超时功能没有停止,而是重定向到下载页面。
所以最后我想要一些事件来检测我的Deeplink是否工作,这样我就可以设置cleartimeout功能来防止重定向到下载URL。
对于桌面浏览器,考虑使用窗口模糊监听器,并采取相应的行动模糊监听器将告诉你,如果用户离开标签或浏览器。
window.onblur=()=>{//deeplink check (maybe unsuccessfull?)
window.onfocus=()=>{//deeplink unsucesfull};
}
我会尝试在超时中使用一个时间戳表达式。
像这样(根据需要玩转阈值)。
var clickedTm = +new date;
setTimeout(function () {
if (+new date - clickedTm < 600) {
window.location = "https://itunes.apple.com/appdir";
}
}, 500);
window.location = "appname://";