如何解决重定向到应用程序的深层链接如果已安装,否则保留在页面上?
在此网站上已多次询问“如何重定向到应用程序(如果已安装,否则重定向到应用程序商店)”问题,但我希望用户保留在页面上,而不是重定向到应用程序商店。应用未安装。
我尝试了几种解决方案,但是没有找到与我正在测试的浏览器(台式机Safari,台式机Chrome,移动Safari,移动Chrome)兼容的解决方案。
我尝试过的第一件事就是这样:
index.html
<!DOCTYPE html>
<html>
<body>
<div>Test</dib>
</body>
<script>window.location.replace("my-app://app")</script>
</html>
此解决方案在桌面版Chrome和移动版Chrome上可以正常运行,但是,在移动版Safari(未安装应用程序)上,它确实将我引导至正确的页面,但是,在显示以下内容的页面上我收到了警报
Safari无法打开页面,因为地址无效
此外,当尝试在Desktop Safari上打开页面时,它甚至不会加载页面,而是立即加载错误屏幕(因为它试图立即重定向到我的Deeplink),内容为:
Safari无法打开指定的地址。 Safari无法打开“ my-app:// app”,因为macOS无法识别以“ my-app:”开头的互联网地址。
我的另一种解决方案是从index.html
文件中删除脚本标记行并添加以下文件:
redirect.html
<!DOCTYPE html>
<html>
<head>
<script src="redirect.js"></script>
</head>
</html>
redirect.js
(function() {
var app = {
launchApp: function() {
window.location.replace("my-app://app");
this.timer = setTimeout(this.openWebApp,0);
},openWebApp: function() {
window.location.replace("index.html");
}
};
app.launchApp();
})();
在第二种解决方案中,用户将直接访问redirect.html
页面,并且如果浏览器没有立即识别并提示用户打开应用程序,它将把他们重定向到index.html
文件。该解决方案实际上可以完美地用于Desktop Chrome,Mobile Chrome和Mobile Safari,但是,与第一个解决方案一样,我遇到了与Desktop Safari完全相同的问题,在第一个解决方案中,它尝试重定向到深层链接,并告诉我macOS不能。无法理解以my-app:
开头的地址。
我的智慧到此为止,任何帮助将不胜感激。谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。