我有一个网页,其中有一个按钮,可以打开应用程序(如果已安装)或如果未安装应用程序则定向到App Store。
如果安装了应用程序,所有方法都可以工作(我叫“ MYAPP://”)。但是,如果未安装应用程序,则Safari会显示错误消息“无法打开URL”,仅此而已。是否可以从JScript禁用该消息,或者是否有其他方法可以从JScript中查找是否已安装应用程序(而不是单击应用程序URL)?

致主持人:我看到有人问similar question,主持人错误地将其标记为重复。请理解这个问题是专门关于从浏览器执行此操作的。

找到了一些合适的解决方案here

顺便说一句,如果有人有兴趣在Android上做同样的事情,这里是代码。我们正在使用Dojo库:

  dojo.io.iframe.send({
    url: "yourApp://foo/bar",
    load: function(resp) {
      // nothing to do since it will automagically open App
    },
    error: function () {
      window.location = "go to Android market";
    }
  });

最佳答案

Branch,我们使用下面的代码形式-请注意,iframe可在更多浏览器上使用。只需替换您应用的URI和您的App Store链接即可。顺便说一句,如果没有安装应用程序,则使用iframe可使错误静音。这很棒!

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                // Deep link to your app goes here
                document.getElementById("l").src = "my_app://";

                setTimeout(function() {
                    // Link to the App Store should go here -- only fires if deep link fails
                    window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
                }, 500);
            };
        </script>
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
    </body>
</html>


如果其他人有更好的解决方案来检测URI方案调用实际上是否失败,请发布!我还没看过,花了很多时间看。所有现有的解决方案仅依赖于仍在页面上的用户和setTimeout触发。

10-08 07:42
查看更多