我想开发一个网址,如果我的应用程序已安装,它将通过应用程序处理。如果它不是iPhone或我的应用程序未安装,我想重定向到网址。
基本上与app store url work完全相同。
答案 0 :(得分:7)
不幸的是,iOS上的自定义URL处理程序无法正常工作。
您可以定义将打开您的应用的自定义网址计划,但您不能将您的应用设置为某些域名的指定处理程序,以便在Safari中打开该域将自动启动您的应用。
要说清楚,一个方案就在域名之前,比如 http:,所以你可以让你的应用程序成为启动 myapp:的网址的处理程序例。显然,没有真正的网址以 myapp:开头,除了您专门设计用于您的应用的那些 - 这就是重点。
不幸的是,这些网址只适用于您的应用,如果您的应用未安装,则无法在Safari中打开这些网址。 iTunes,Google地图,Youtube等都在iPhone上运行,因为Apple已经将它们硬编码为特殊情况,但它们并未将此机制提供给第三方应用。
要为您的应用注册自定义方案,请按照以下教程进行操作:http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
您可以做的是设置一个常规网页,使用javascript来检测设备的用户代理,如果是iPhone,则会使用document.location ='myapp自动重定向到应用的自定义方案网址: ......“。如果您尝试重定向到自定义网址方案,如果应用程序尚未安装,我不确定会发生什么。它可能什么都不做,这对你来说是理想的,或者它可能会引发错误或转到空白页面,在这种情况下你最好弹出一条消息,比如“点击这里启动应用程序或点击此处从应用程序商店下载它“,这是大多数网站似乎都在做的。
答案 1 :(得分:6)
您必须使用普通网址制作一个普通网站,然后重定向到像yourapp:// dosomething这样的网址。 Web浏览器和Safari一样,如果没有App(你的应用程序)处理协议“yourapp://”,就应该忽略url。
重定向是例如可以在php中使用重定向设置标题:
<?php
header('Location: yourapp://dosomething');
?>
其他服务器脚本语言也是可能的。您还应该在“MobileSafari”和其他浏览器之间加以区分,并在那里进行区分。
<?php
/* detect Mobile Safari */
$browserAsString = $_SERVER['HTTP_USER_AGENT'];
if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/"))
{
header('Location: yourapp://dosomething');
}
?>
答案 2 :(得分:0)
您可以使用canOpenURL
:方法检查应用程序是否可以打开给定的URL资源。更多关于Apple's Doc。
希望它对你有所帮助。