Javascript “最佳展示方式”;“应用程序未安装”;打开深度链接后的反馈信息?

Javascript “最佳展示方式”;“应用程序未安装”;打开深度链接后的反馈信息?,javascript,android,ios,deep-linking,Javascript,Android,Ios,Deep Linking,我们正在开发一款在移动浏览器(主要是Chrome、Firefox、Android内置的浏览器和iOS中的Safari)中运行的web应用程序。它有一个链接,可以将您带到移动应用程序。我们不拥有移动应用程序,因此无法以任何方式对其进行修改。我们只得到了这样的深层链接:myapp://someotherstuff 问题是,当我遵循它时,例如在Chrome for Google Pixel 4中,我在控制台中收到以下警告: 只是想了解更多信息,我在桌面上遇到以下错误: 我想捕获此错误以向用户显示一

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

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

只是想了解更多信息,我在桌面上遇到以下错误:

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

首先,我如何启动导航(不同的方式):
  • 使用
    窗口打开(deepLink,'.\u self')
    ()
  • 手动使用
    href=“deepLink”
    创建可见的锚定标记(相同)
  • 通过编程方式使用
    href=“deepLink”
    动态创建隐藏的锚定标记(相同)
其次,我如何尝试捕捉错误(不同的方式):
  • 包装
    窗口。在
    try/catch
    块中打开(…)
    。没有结果
  • 使用
    窗口收听浏览器抛出的任何类型的错误。onerror
    (相同)但没有结果:
  • 使用。他们在Chrome上工作,但我不确定他们是否会在非Chrome浏览器或像Safari这样的Android浏览器上工作。在我看来,这似乎是2014年的老特色(也许我错了)
  • 无法使用,因为他们需要更改我们不拥有的网页的服务器
我当前的解决方法:
  • 手动或编程单击锚定标记中的链接
  • 将超时设置为3秒。如果在3秒钟内该页面仍然可见,则表示浏览器无法打开该应用程序,因此我显示该消息
  • 问题 假阳性。如果用户将焦点更改为另一个浏览器选项卡怎么办?我的setTimeout会认为,好的,页面的可见性是隐藏的,所以应用程序打开了。事实上并非如此

    问题:
    向用户显示此“未安装应用程序”反馈的最佳方法是什么?您知道比这里描述的更好的吗?

    如果没有安装,您可以在标题中添加元标记,在移动设备上提供“安装此应用!”横幅。谢谢,我不知道。它不适合我想要的用户体验,但很高兴知道。
    window.onerror = function(message, source, lineno, colno, error) {
        console.log('Error captured here');
    }