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这个方法:

 //MARK: - 通过下面的方法实现点击html可以打开app
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject])
-> Bool {
if url.host == nil
{
return true;
}
let urlString = url.absoluteString //url 的绝对字符串
let queryArray = urlString.componentsSeparatedByString("/") //通过/把URL切成数组
//传参
// let alertController = UIAlertController(title: "参数如下",
// message: "\(queryArray[2]) \(queryArray[3])", preferredStyle: .Alert)
// let cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil)
// alertController.addAction(cancelAction)
// self.window!.rootViewController!.presentViewController(alertController, animated: true, completion: nil)
//打开相应界面
let tababarController = self.window!.rootViewController!.childViewControllers[] as! UITabBarController
if queryArray[] == "item1" {
tababarController.selectedIndex = //使tabcarController选中第一个tabbaritem
}else if queryArray[] == "item2"{
tababarController.selectedIndex = //使tabcarController选中第二个tabbaritem
}
//测试方法:
//先安装test1
//打开浏览器地址栏输入
// test1:// 打开test1
// test1://item1 打开test1的第一个item
// test1://item2 打开test1的第二个item
//上面的test1就是工程中配置的URL Schemes
return true
}

二.APP打开APP

eg:test1打开test2

先在test2中配置URl Schemes,然后在test1中写代码即可:

在点击test1中的一个按钮时,在其点击方法中通过openURL打开即可.

  @IBOutlet var btn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
btn.addTarget(self, action: #selector(Tab2ViewController.btnClick), forControlEvents: .TouchUpInside)
// Do any additional setup after loading the view.
}
func btnClick(){
let urlString = "test2://"
let url = NSURL(string: urlString)
UIApplication.sharedApplication().openURL(url!)
}

同时,因为iOS9的安全因素,需要在test1中设置白名单.设置方法参考:http://www.cnblogs.com/shaoting/p/5148323.html

其余常见应用的URL Schemes:http://www.cnblogs.com/shaoting/p/5148323.html

demo下载:https://github.com/pheromone/URLSchemes

http://download.csdn.net/detail/shaoting19910730/9496841

Swift URL Schemes使用的更多相关文章

  1. URL Schemes

    APP 被唤醒离不开对URL Schemes的认知. 苹果选择沙盒来保障用户的隐私和安全,但沙盒也阻碍了应用间合理的信息共享,于是有了 URL Schemes 这个解决办法. URL Schemes ...

  2. 你所知道好玩有趣的 iOS URL schemes 有哪些?

    QQ的url是 mqq:// 微信是weixin:// 淘宝taobao:// 点评dianping:// dianping://search 微博 sinaweibo:// 名片全能王camcard ...

  3. iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单

    近期苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装. 受此影响,当你的应用在 ...

  4. 微信分享 添加URL Schemes

    1. TARGETS - Info - URL Types identifier -> weixin URL Schemes -> 应用id 2.在AppDelegate.h 引入头文件 ...

  5. WKWebView无法(通过URL schemes)跳转到其他App

    Custom scheme URL 在WKWebView中默认是不支持的 (但Safari可以). 我们可以通过NSError来进行一些处理从而使得程序可以正常跳转: func webView(web ...

  6. iOS 之URL schemes

    添加 URL  schemes 步骤: 1.打开info.plist文件. 2.点击 “+ ”号添加,或者在列表上点击鼠标右键,选择 Add Row. 3.选择 URL types. 4.点击三角号展 ...

  7. iOS URL Schemes与漏洞的碰撞组合

    iOS URL Schemes与漏洞的碰撞组合 前言 iOS URL Schemes,这个单词对于大多数人来说可能有些陌生,但是类似下面这张图的提示大部分人应该都经常看见: 今天要探究的就是:了解iO ...

  8. iOS 微信打开第三方应用(Universal Links 和 URL Schemes)

    一.前言 项目中时常有这种需求, 是通过链接跳转到应用内部,现在iOS主流的方案有两个 Schema: 常用在于一个应用跳转到另一个应用内部,属于应用间的跳转.当然ios9以下,网页可以通过schem ...

  9. LSApplicationQueriesSchemes--关于info.plist 第三方登录 添加URL Schemes白名单

    近期苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装. 当你的应用在iOS 9 ...

随机推荐

  1. hdu----(3068)最长回文(manacher)

    最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. 10大html5前端框架

    Bootstrap 首先说 Bootstrap,估计你也猜到会先说或者一定会有这个( 呵呵了 ),这是说明它的强大之处,拥有框架一壁江山的势气.自己刚入道的时候本着代码任何一个字母都得自己敲出来挡我者 ...

  3. JS基础--问题记录

    1. {}var a={};{}是一个空的对象,是 new Object();的简写. 2.判断元素是存在 //jQuery 对象中元素的个数.当前匹配的元素个数. size 将返回相同的值. if ...

  4. 个人收集的一些网页上一键云DDOS攻击的网站、IP地址测试,服务器压力测试

    http://bbs.itzmx.com/thread-9018-1-1.html #1 - Network Stresser - http://networkstresser.com#2 - Lif ...

  5. shell学习记录001-知识点储备

    1.BASH(bourne again shell ) cmd1 ;cmd2等同于 cmd1 cmd2 2.echo music; 中的分号不被打印出,因为分号默认为命令定界符号 3.利用pgrep找 ...

  6. LA 4119 - Always an integer

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  7. dancing link 学习资源导航+心得

    dancing link简直是求解数独的神器,NOIP2009最后一题靶形数独,DFS 各种改变搜索顺序 都没法过,最后还是用了卡时过得.用dancing link写,秒杀所有数据,总时间才400ms ...

  8. for循环语句示例应用

    age = 22 #优化前 ''' for i in range(10): guess_num = int(input('input your guess num:')) if guess_num = ...

  9. 【个人使用.Net类库】前言

    个人接触.Net是在2013年8月份到了一家新的公司开始的. 目前为止,发现自己的知识储备如下: 基本的WinForm编程,但没做过对应项目. 基本的Asp.Net页面,做过查询.树形菜单.登录的小功 ...

  10. BeanUtils组件

    引入jar包(需要引入依赖的日志jar包) Person p = new Person(); p.setName("Daisy"); p.setAge(12); //对象的copy ...