Ajax 调用检查设备上是否存在本机 iPhone 应用程序?
对于我们的 iPhone 本机应用程序,我们有一个 URL: example://
在 iPhone 上,如果我在 safari 中键入此 URL (example://),它会自动打开我的应用程序。
在我的“常规”网站上,我有一个链接,当用户单击该链接时,它会打开该应用程序。问题是,如果 iPhone 上未安装该应用程序,则会抛出“无法打开”错误。
因此,在我的“常规”网站上呈现链接之前,我需要检查应用程序是否已安装,一种解决方案是进行 Ajax 调用并检查状态代码:
$.ajax({
type: 'POST',
url: 'example://',
complete: function (transport) {
if (transport.status == 200) {
alert('Success');
} else {
alert(transport.status);
alert('Failed');
}
}
});
但此代码始终返回状态代码“0”。
有没有办法从网络上查出是否安装了本机 iPhone 应用程序?
For our iPhone native application we have a URL : example://
On the iPhone if I type this URL (example://) in safari it automatically opens up my application.
From my "regular" website I have a link which when the user clicks it opens the application. The problem is that if the application is not installed on the iPhone it throws "Unable to open" error.
So before rendering the link on my "regular" site I need to check if the app is installed, one solution is to make an Ajax call and check for status code:
$.ajax({
type: 'POST',
url: 'example://',
complete: function (transport) {
if (transport.status == 200) {
alert('Success');
} else {
alert(transport.status);
alert('Failed');
}
}
});
But this code is always returning a status code "0".
Is there a way to find out from the web if the native iPhone app is installed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您指的是 Mobile Safari,那么您就不走运了。据我所知,没有记录在案的公共 API 可以做到这一点。 Mobile Safari 被沙盒化,远离操作系统。
如果它位于应用程序内的 Web 视图中,您可以请求 URL 并让 Web 视图委托与本机应用程序对话/查询 example:// 的处理。否则,浏览器无法知道任何已安装应用程序的存在。
If u are referring to Mobile Safari, you're out of luck. There's no documented public API that I know of that can do this. Mobile Safari is sandboxed away from the OS.
If it's in a webview within an app, u can request the URL and let the webview delegate talk to the native app / query the handling of example://. Otherwise, no way the browser can know existence of any installed app.