URL Scheme是iOS SDK提供给开发者的通过URL打开系统或第三方应用的方式,iOS开发中常见的几种需求,比如分享到微信微博,或调用支付宝支付之类的调用其他应用,以及调用完后,第三方应用对自己的回调都需要用到URL Scheme的知识,关于URL Scheme有这么几点需要了解
一、怎么通过一个应用的URL Scheme打开对应应用的对应页面
从一个应用切换到另一个应用所调用的关键方法是UIApplication的单例方法openURL:
UIApplication.sharedApplication().openURL(url)
当你用手机扫描二维码后,二维码就会被解析为下面的URL,然后openURL:方法被调用即可打开对应的应用,比如当你扫描mailto:[email protected]时,系统就会询问你是否要打开Mail应用发邮件给[email protected],在这个例子中Mail应用的URL Scheme是mailto,冒号后面的是传递给这个应用的消息,二维码应用通过这个方法打开其它应用,你也可以在自己的应用中采用该方法来打开其它应用,其它iOS应用的URL Scheme在网络上都能找到,传入什么消息会打开什么特定页面在开发文档里都会有写
二、怎么创建自己的URL Scheme以供其他应用回调
application(_:openURL:sourceApplication:annotation:)
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 }
当这个应用被调用时就会出现:
本文是对Intermediate iOS Programming with Swift书中的WORKING WITH URL SCHEMES章节的要点提炼,这本书出自http://www.appcoda.com,不错的iOS开发网站,不过是全英文的 :)