Ajax调用检查设备上是否存在本机iPhone应用程序?

时间:2011-10-04 15:54:33

标签: iphone ajax native

对于我们的iPhone原生应用程序,我们有一个URL:example://

在iPhone上,如果我在Safari中输入此URL(例如://),它会自动打开我的应用程序。

在我的“常规”网站上,我有一个链接,当用户点击它时会打开应用程序。问题是,如果iPhone上没有安装应用程序,它会抛出“无法打开”错误。

因此,在我的“常规”网站上呈现链接之前,我需要检查应用程序是否已安装,一个解决方案是进行Ajax调用并检查状态代码:

$.ajax({
                    type: 'POST',
                    url: 'example://',                   
                    complete: function (transport) {
                        if (transport.status == 200) {
                            alert('Success');                            
                        } else {
                            alert(transport.status);
                            alert('Failed');
                        }
                    }
                });

但是这段代码总是返回状态码“0”。

有没有办法从网上找到是否安装了原生iPhone应用程序?

1 个答案:

答案 0 :(得分:0)

如果你指的是移动Safari,那你就不走运了。我所知道的没有记录的公共API可以做到这一点。 Mobile Safari远离操作系统。

如果它位于应用内的webview中,您可以请求该URL并让webview委托与本机应用/查询对话来处理example://。否则,浏览器无法知道是否存在任何已安装的应用程序。