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

打开深层链接后显示“应用未安装”反馈消息的最佳方式?

如何解决打开深层链接后显示“应用未安装”反馈消息的最佳方式?

我们正在开发一款可在移动浏览器(主要是 Chrome、Firefox、Android 内置的浏览器和 iOS 中的 Safari)中运行的网络应用。它有一个链接,可将您带到移动应用。我们不拥有移动应用程序,因此我们无法以任何方式对其进行修改。我们只获得了如下深层链接myapp://someotherstuff

问题是,当我遵循它时,例如在 Chrome for Google Pixel 4 中,我在控制台中收到此警告:

enter image description here

只是为了更多信息,在桌面上我收到这个错误

enter image description here

我想捕获此错误以向用户显示一条反馈消息,例如:“您的应用似乎尚未安装。您可以从...下载它”

首先,我如何触发导航(不同的方式):

  • window.open(deepLink,'_self') (example)。
  • 手动使用 href="deepLink"(相同的 example)创建可见的锚标记
  • 以编程方式使用 href="deepLink"(相同的 example)即时创建隐藏的锚标记

其次,我如何尝试捕获错误(不同的方式):

  • window.open(...) 包裹在 try/catch 块中。没有结果。
  • 侦听浏览器抛出的错误,无论何种类型,带有 window.onerror(相同的 example)但没有结果:
window.onerror = function(message,source,lineno,colno,error) {
    console.log('Error captured here');
}
  • 使用Chrome Intents。它们适用于 Chrome,但我不确定它们是否适用于非 Chrome 或 Android 浏览器(如 Safari)。在我看来,这像是 2014 年的旧功能(也许我错了)。
  • 无法使用 App Links,因为它们需要更改我们不拥有的网页的服务器。

我目前的解决方法

  1. 手动或以编程方式点击锚标签中的链接
  2. 将超时设置为 3 秒。如果 3 秒后该页面仍然可见(带有 document.visibilityState),则表示浏览器无法打开该应用,因此我会显示该消息。

问题

误报。如果用户将焦点更改到另一个浏览器选项卡怎么办?我的 setTimeout 会认为页面的可见性是 hidden,所以应用程序打开了。实际上不是。

问题:

用户显示“应用未安装”反馈的最佳方法是什么?你知道比这里描述的更好的吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。