码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 开发之 URL Scheme

时间:2014-10-27 19:27:46      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   os   ar   使用   sp   

在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个程序。

例如在 iPad 上浏览网页,并且 iPad 已经安装了 淘宝 HD,那么就打开下面这个链接就会在淘宝 HD 中查看这个商品的详细信息,也可以方便的使用淘宝 HD 进行购买、收藏等操作。

配置

配置

要为 iOS 程序添加自定义协议的支持是一件很方便的事,只需要在程序的 Info.plist 添加一个 URL types 节点就可以了。在这个节点里,可以设置这个程序所支持的自定义协议名称,像 http、ftp 这种,一般我们可以设置为程序英文名称,像淘宝客户端中就设置了 taobao,这样 taobao:// 这个形式的 URL 就会关联到淘宝客户端的 App。

bubuko.com,布布扣
 

步骤为

    1:如果没有URL types,随意点一个key行后面+号,输入大写URL选择URL types

           2:右键URL types,选择add row

           3:item0下改成url identifier,后面的value值随意写,com.xx,xx

           4:加一行,选择url schemes,item后面值写成你需要的,譬如上面的todolist,以后别的app就可以用

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"todolist://"]];

启动你的app。

 

实现

在 Info.plist 里面设置完 URL types 之后,就可以在程序中处理这类 URL 的打开请求了。

在外部程序中,如果打开了指定自定义协议的 URL,程序中 application delegate 的 application:handleOpenURL: 方法就会被调用,在这个方法里,可以获取到触发这个方法的 URL,可以通过对这个 URL 进行判断,例如根据不同的 Host,不同的 Query String 来执行不同的动作。

 

- (void)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

    NSLog(@"%@", [url absoluteString]);

    // 在 host 等于 item.taobao.com 时,说明一个宝贝详情的 url,

    // 那么就使用本地的 TBItemDetailViewController 来显示

    if ([[url host] isEqualToString:@"item.taobao.com"]) {

        // 这里只是简单地假设 url 形式为 taobao://item.taobao.com/item.htm?id=12345678

        // 先获取要查看的宝贝详情的 itemId

        NSString *itemId = [[url query] substringFromIndex:[[url query] rangeOfString:@"id="].location+3];

        // 使用本地 ViewController 来显示淘宝商品详情

        TBItemDetailViewController *controller = [[TBItemDetailViewController alloc] initWithItemId:itemId];

        [self.navigationController pushViewController:controller animated:YES];

        [controller release];

    }

}

转子:http://www.cocoachina.com/newbie/tutorial/2012/0529/4302.html

iOS 开发之 URL Scheme

标签:style   blog   http   io   color   os   ar   使用   sp   

原文地址:http://www.cnblogs.com/IOS-FU/p/4054866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!