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