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. query attr prop区别

    大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked", ...

  2. Asp.Net 导出Excel数据文件

    表格例子如下: <table id="tableExcel" width="100%" border="1" cellspacing= ...

  3. 你所知道的Java单例模式并不是单例模式

    当我们搜索单例模式的时候,能看到很多例子,什么懒汉式.饿汉式,大概如下: public class Singleton { private static Singleton instance=null ...

  4. Internet Explorer已限制此网页运行可以访问计算机的脚本或ActiveX控件

    在制作网页的时候,大家不免要用到script,也即是脚本,主要是VBScript以及JavaScript.那么时常遇到这样的情况: 在本地双击打开html文件时,如果是IE的话,会出现提示框(如下图) ...

  5. [示例]创建Student类,输入学生信息并存入字典,将3个存有学生信息的字典存入数组,并计算

    代码: main: #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, c ...

  6. bzoj 1791: [Ioi2008]Island 岛屿

    #include<iostream> #include<cstdio> #define M 1000009 using namespace std; *M],cnt,n,hea ...

  7. hdu 4610 Cards

    http://acm.hdu.edu.cn/showproblem.php?pid=4610 先求出每个数的得分情况,分数和得分状态,(1<<4)种状态 按分数从大到小排序 然后每种状态取 ...

  8. myeclipse中导入的jquery文件报错(出现红叉叉,提示语法错误)

    转自:http://blog.csdn.net/simplty/article/details/7661504

  9. Python中通过多个字符分割(split)字符串的方法

    python中字符串自带的split方法一次只能使用一个字符对字符串进行分割,但是python的正则模块则可以实现多个字符分割 import re re.split('-|_','sharejs_ha ...

  10. javaweb-四则运算

    这次作业,我们选择的是网页开发,后来我们小组才知道自己这方面的知识还是太匮乏了. 主要代码: public class calcu extends HttpServlet{ public void d ...