8.Swift openURL
IOS跟Android一样,都有一个Application对象。IOS中,我们可以通过UIApplication的一个静态方法sharedApplication() -> UIApplication
获得UIApplication对象实例,这个Application对象的openURL(url: NSURL) -> Bool
方法能做很多事情,下面我们来逐个介绍一下。
获取UIApplication实例
UIApplication.sharedApplication() -> UIApplication
openURL可以做很多事情
UIApplication.openURL(url: NSURL) -> Bool
打电话
UIApplication.sharedApplication().openURL(NSURL(string: "tel:10086")!)
发短信
UIApplication.sharedApplication().openURL(NSURL(string: "sms://10086")!)
发邮件
UIApplication.sharedApplication().openURL(NSURL(string: "mailto:421482590@qq.com")!)
打开网页
调用的是本机子的Safari浏览器打开网页
UIApplication.sharedApplication().openURL(NSURL(string: "http://www.baidu.com")!)
打开另外一个App
这里的方式和Android也是类似的,通过和另外一个App**约束好URL Scheme启动App**
- 1.我们需要在另外一个App的info.plist文件内新建一个URL Types的key,然后在配置上约束好的URL Scheme,这里我定义了一个名为”Save”的URL Scheme,如下:
- 2.再重写AppDelegate.swift中的
AppDelegate.application(application: UIApplication, handleOpenURL url: NSURL) -> Bool
方法,在这个方法中取得这个NSURL对象,同时获得相应的信息并且做出对应的跳转之类的事情,我在这里就以打开一个新的ViewController为例。
func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
let vc = LabelViewController(nibName:"LabelViewController",bundle:nil)
self.window?.addSubview(vc.view)
vc.myLabel.text = "\(url)"
return true
}
- 3.在作为调用者的App中通过openURL调用约束好URL Scheme的App。
UIApplication.sharedApplication().openURL(NSURL(string: "save://save.you.from.anything")!)