尝试加载自定义 URL 方案时不提示用户安装应用

Don't prompt a user to install an app when trying to load a custom URL scheme

我有一个页面,我想在安装 Instagram 应用程序时将用户重定向到该页面。该部分运行良好,但当用户未安装该应用程序时,它会提示他们前往应用程序商店并下载该应用程序,这不是我想要的。

我在 Safari 的 OS X 上看到了这种行为,所涉及的 HTML 是({username} 将由我的应用程序根据提交表单的用户填充):

<!DOCTYPE html>
<html lang="en">
    <head>
      <meta http-equiv="refresh" content="0; url=instagram://user?username={username}">
    </head>

    <body>
        <div>
            Taking you to Instagram...
        </div>
        <script src="https://code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        $(function() {
            setTimeout(function() {
              window.location = "https://instagram.com/{username}";
            }, 200);
        });
        </script>
    </body>
</html>

编辑 具体来说,发生的事情是行 <meta http-equiv="refresh" content="0; url=instagram://user?username={username}"> 显示以下对话框:

我希望该对话框不显示,让 "window.location =" 接管并将用户重定向到浏览器中的 Instagram。

我的问题是如何修改 "instagram://" 重定向以不要求用户在他们的机器上安装 Instagram 应用程序?

没有(官方)方法可以在浏览器中检测是否安装了应用程序(如 Instagram),因此您不能在不提供替代方案的情况下使用自定义 url 方案。您应该让最终用户选择并提示打开网站(https 方案)或应用程序(Instagram 方案)。 用户将知道是否安装了该应用程序。

如果您已经知道用户安装了 Instagram 应用程序,您可以查看浏览器代理以查看您是否在 iOS 设备上。