iOS不同应用切换中URL Scheme的使用介绍
2015-08-29 08:34
465 查看
URL Scheme是iOS SDK提供给开发者的通过URL打开系统或第三方应用的方式,iOS开发中常见的几种需求,比如分享到微信微博,或调用支付宝支付之类的调用其他应用,以及调用完后,第三方应用对自己的回调都需要用到URL Scheme的知识,关于URL Scheme有这么几点需要了解
一、怎么通过一个应用的URL Scheme打开对应应用的对应页面
从一个应用切换到另一个应用所调用的关键方法是UIApplication的单例方法openURL:
以二维码应用为例:
当你用手机扫描二维码后,二维码就会被解析为下面的URL,然后openURL:方法被调用即可打开对应的应用,比如当你扫描mailto:support@appcoda.com时,系统就会询问你是否要打开Mail应用发邮件给support@appcoda.com,在这个例子中Mail应用的URL
Scheme是mailto,冒号后面的是传递给这个应用的消息,二维码应用通过这个方法打开其它应用,你也可以在自己的应用中采用该方法来打开其它应用,其它iOS应用的URL Scheme在网络上都能找到,传入什么消息会打开什么特定页面在开发文档里都会有写
二、怎么创建自己的URL Scheme以供其他应用回调
这里直接上图了,熟悉Xcode环境的人应该很容易知道怎么做,这是方法之一:
这里给一个名叫TextReader的应用添加了URL Scheme: “textreader” 如上图所示
但是只设置自己应用的URL Scheme是不够的,你需要对伴随URL而来的消息做处理以打开对应页面,对消息进行处理的,是项目中AppDelegate文件中的AppDelegate类所遵守的UIApplicationDelegate协议定义的方法:
你需要实现这个方法来对传入的消息做出反应
这是上面的TextReader项目的处理函数:
当它收到消息的时候,就会弹出一个AlertView来展示接收到的消息内容,举个例子,如果传入的URL是这个:
当这个应用被调用时就会出现:
本文是对Intermediate iOS Programming with Swift书中的WORKING WITH URL SCHEMES章节的要点提炼,这本书出自http://www.appcoda.com,不错的iOS开发网站,不过是全英文的
:)
一、怎么通过一个应用的URL Scheme打开对应应用的对应页面
从一个应用切换到另一个应用所调用的关键方法是UIApplication的单例方法openURL:
UIApplication.sharedApplication().openURL(url)
以二维码应用为例:
当你用手机扫描二维码后,二维码就会被解析为下面的URL,然后openURL:方法被调用即可打开对应的应用,比如当你扫描mailto:support@appcoda.com时,系统就会询问你是否要打开Mail应用发邮件给support@appcoda.com,在这个例子中Mail应用的URL
Scheme是mailto,冒号后面的是传递给这个应用的消息,二维码应用通过这个方法打开其它应用,你也可以在自己的应用中采用该方法来打开其它应用,其它iOS应用的URL Scheme在网络上都能找到,传入什么消息会打开什么特定页面在开发文档里都会有写
二、怎么创建自己的URL Scheme以供其他应用回调
这里直接上图了,熟悉Xcode环境的人应该很容易知道怎么做,这是方法之一:
这里给一个名叫TextReader的应用添加了URL Scheme: “textreader” 如上图所示
但是只设置自己应用的URL Scheme是不够的,你需要对伴随URL而来的消息做处理以打开对应页面,对消息进行处理的,是项目中AppDelegate文件中的AppDelegate类所遵守的UIApplicationDelegate协议定义的方法:
application(_:openURL:sourceApplication:annotation:)
你需要实现这个方法来对传入的消息做出反应
这是上面的TextReader项目的处理函数:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { let message = url.host?.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding) let alertController = UIAlertController(title: "Incoming Message", message: message, preferredStyle: .Alert) let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil) alertController.addAction(okAction) window?.rootViewController?.presentViewController(alertController, animated: true, completion: nil) return true }
当它收到消息的时候,就会弹出一个AlertView来展示接收到的消息内容,举个例子,如果传入的URL是这个:
当这个应用被调用时就会出现:
本文是对Intermediate iOS Programming with Swift书中的WORKING WITH URL SCHEMES章节的要点提炼,这本书出自http://www.appcoda.com,不错的iOS开发网站,不过是全英文的
:)
相关文章推荐
- IOS CoreText.framework --- 行 CTLineRef
- iOS开发 - 正则表达式 RegexKitLite框架
- 13、iOS开发之数据存储
- 12、iOS 开发之 KVC \KVO
- 11、iOS 开发之 CALayer 和核心动画
- 10、iOS 开发之事件处理
- 9、iOS开发之 Quartz-2d
- 8、iOS 开发之多控制器管理
- 7、iOS 开发之程序启动原理
- 2、iOS 开发之字典转模型和 xib
- 1、iOS 开发之基础控件
- 【读书笔记】iOS-Xcode知识-多线程
- 【读书笔记】iOS-Xcode知识-多线程
- [iOS]把字符串汉字转换成UTF-8编码
- ios开发-电话本的设计与实现
- iOS 推送服务的简易原理与配置
- IOS学习 访问其他应用并交互
- IOS square类集成rectangl类 计算面积和周长
- iOS 大型项目开发漫谈
- iOS下nil 、NULL、 Nil 、NSNull的区别你造吗