通过url打开app的方法

原文:http://www.cocoachina.com/bbs/read.php?tid=109315&keyword=%CC%F8%D7%AA

通过URL协议实现从Safari等浏览器中跳转打开你的app

2012(秋季)CocoaChina开发者大会专题回顾


看到Amazing Alex中有个关卡下载的功能,在浏览器中选择要下载的关卡(如下图)以后会自动 跳转回这个游戏。




实现这样的功能并不麻烦,通过将网上一些相关教程汇总以后就写了下面的教程分享。

实现效果如下,在浏览器中输入“appABC://”之后就会打开这个程序,打开后程序中会显示 跳转过来的链接地址。




第一步:在info.plist中加入这些内容


其中URL identifier 可以随便取,URL Schemes 就是实现跳转URL协议的名称(可以多个)

然后,在视图控制器中加入这样的代码用于显示 跳转过来的地址:

复制代码
  1. +(void)alert:(NSString*)information{
  2. UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"提示" message:[NSString stringWithFormat:@"程序通过URL协议打开,该URL为:“%@”",information] delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
  3. [alert show];
  4. [alert release];
  5. }



再在AppDelegate.m中加入这些代码

复制代码
  1. -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
  2. if(!url){
  3. return NO;
  4. }
  5. NSString *urlString=[url absoluteString];
  6. [ViewController alert:urlString];
  7. return YES;
  8. }

就完成了这个看似很酷的功能,至于参数传递的问题大家可以自己研究一下,不难的,这里没有做进去