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. Jenkins简单使用介绍

    一.Jenkins的配置 1. 下载地址: Jenkins的官方网站:http://jenkins-ci.org/ 目前最新版本的Windows版:http://mirror.xmission.com ...

  2. splunk 索引过程

    术语: Event :Events are records of activity in log files, stored in Splunk indexes. 简单说,处理的日志或话单中中一行记录 ...

  3. Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。

    AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是:https://github.com/loopj/android-async-httpAsyncH ...

  4. [Js]无缝滚动

    效果: 1.默认缓慢往左滚动 2.放到左箭头上还是向左滚动,放到右箭头上向右滚动 3.放到图片上停止滚动,移出继续滚动 思路: 1.计算图片列表ul的宽度 2.开启定时器,使其向左边距不断增大,造成向 ...

  5. 牛场围栏(vijos 1054)

    题目大意: 给出N种木棍(每种木棍数量无限)的长度(<=3000),每根木棍可以把它切掉[1,M]的长度来得到新的木棍. 求最大的不能被组合出来的长度. 如果任何长度都能组合出来或者最大值没有上 ...

  6. ROS TF——learning tf

    在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换. 相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf 一.tf简介 ...

  7. 用PHP的socket实现客户端到服务端的通信

    服务端 <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); //本地IP $address = 'loca ...

  8. Java与.NET DES加密解密互转

    上代码: Java代码: import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKe ...

  9. 使用eclipse创建在myeclipse中运行的web工程

    今天在跟随慕课网学习java时,遇到课程中老师使用Myeclipse,我用的是eclipse,那么就使用eclipse创建在Myeclipse项目 参考: 如何在Eclipse配置Tomcat服务器 ...

  10. Fix the Can’t clobber writable file error in Perforce Version Control System - forward

    http://easyprograming.com/eclipse-articles/57-fix-the-cant-clobber-writable-file-error-in-perforce-v ...