如何解决打开深层链接后显示“应用未安装”反馈消息的最佳方式?
我们正在开发一款可在移动浏览器(主要是 Chrome、Firefox、Android 内置的浏览器和 iOS 中的 Safari)中运行的网络应用。它有一个链接,可将您带到移动应用。我们不拥有移动应用程序,因此我们无法以任何方式对其进行修改。我们只获得了如下深层链接:myapp://someotherstuff
。
问题是,当我遵循它时,例如在 Chrome for Google Pixel 4 中,我在控制台中收到此警告:
只是为了更多信息,在桌面上我收到这个错误:
我想捕获此错误以向用户显示一条反馈消息,例如:“您的应用似乎尚未安装。您可以从...下载它”。
首先,我如何触发导航(不同的方式):
- 用
window.open(deepLink,'_self')
(example)。 -
手动使用
href="deepLink"
(相同的 example)创建可见的锚标记。 -
以编程方式使用
href="deepLink"
(相同的 example)即时创建隐藏的锚标记。
其次,我如何尝试捕获错误(不同的方式):
window.onerror = function(message,source,lineno,colno,error) {
console.log('Error captured here');
}
- 使用Chrome Intents。它们适用于 Chrome,但我不确定它们是否适用于非 Chrome 或 Android 浏览器(如 Safari)。在我看来,这像是 2014 年的旧功能(也许我错了)。
- 无法使用 App Links,因为它们需要更改我们不拥有的网页的服务器。
我目前的解决方法:
- 手动或以编程方式点击锚标签中的链接
- 将超时设置为 3 秒。如果 3 秒后该页面仍然可见(带有
document.visibilityState
),则表示浏览器无法打开该应用,因此我会显示该消息。
问题
误报。如果用户将焦点更改到另一个浏览器选项卡怎么办?我的 setTimeout 会认为页面的可见性是 hidden
,所以应用程序打开了。实际上不是。
问题:
向用户显示此“应用未安装”反馈的最佳方法是什么?你知道比这里描述的更好的吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。