微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重定向到应用程序的深层链接如果已安装,否则保留在页面上?

如何解决重定向到应用程序的深层链接如果已安装,否则保留在页面上?

在此网站上已多次询问“如何重定向到应用程序(如果已安装,否则重定向到应用程序商店)”问题,但我希望用户保留在页面上,而不是重定向到应用程序商店。应用未安装。

我尝试了几种解决方案,但是没有找到与我正在测试的浏览器(台式机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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?