我有一个网页,其中有一个按钮,可以打开应用程序(如果已安装)或如果未安装应用程序则定向到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触发。