URL Schemes通常用于分享和第三方登录,但有时需要在html跳至APP,或者APP跳至另外一个APP.这时也需要使用URL Schemes.
一.html跳转至APP
eg:html跳转至test1
在APP中添加URL Schemes,这里的URL Schemes随意写均可,如图:
2.在AppDelegate.swift中加入,func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject])
-> Bool这个方法:
1 //MARK: - 通过下面的方法实现点击html可以打开app 2 func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) 3 -> Bool { 4 if url.host == nil 5 { 6 return true; 7 } 8 let urlString = url.absoluteString //url 的绝对字符串 9 let queryArray = urlString.componentsSeparatedByString("/") //通过/把URL切成数组 10 //传参 11 // let alertController = UIAlertController(title: "参数如下", 12 // message: "(queryArray[2]) (queryArray[3])", preferredStyle: .Alert) 13 // let cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil) 14 // alertController.addAction(cancelAction) 15 // self.window!.rootViewController!.presentViewController(alertController, animated: true, completion: nil) 16 //打开相应界面 17 let tababarController = self.window!.rootViewController!.childViewControllers[0] as! UITabBarController 18 if queryArray[2] == "item1" { 19 tababarController.selectedIndex = 0 //使tabcarController选中第一个tabbaritem 20 }else if queryArray[2] == "item2"{ 21 tababarController.selectedIndex = 1 //使tabcarController选中第二个tabbaritem 22 } 23 //测试方法: 24 //先安装test1 25 //打开浏览器地址栏输入 26 // test1:// 打开test1 27 // test1://item1 打开test1的第一个item 28 // test1://item2 打开test1的第二个item 29 //上面的test1就是工程中配置的URL Schemes 30 return true 31 }
二.APP打开APP
eg:test1打开test2
先在test2中配置URl Schemes,然后在test1中写代码即可:
在点击test1中的一个按钮时,在其点击方法中通过openURL打开即可.
1 @IBOutlet var btn: UIButton! 2 override func viewDidLoad() { 3 super.viewDidLoad() 4 btn.addTarget(self, action: #selector(Tab2ViewController.btnClick), forControlEvents: .TouchUpInside) 5 // Do any additional setup after loading the view. 6 } 7 func btnClick(){ 8 let urlString = "test2://" 9 let url = NSURL(string: urlString) 10 UIApplication.sharedApplication().openURL(url!) 11 }
同时,因为iOS9的安全因素,需要在test1中设置白名单.设置方法参考:http://www.cnblogs.com/shaoting/p/5148323.html
其余常见应用的URL Schemes:http://www.cnblogs.com/shaoting/p/5148323.html