iOS9 新功能:Support Universal Links,iOS10 openUrl新函数
简单解释一下
我们都知道ios应用能够注册自己的URL Schemes,之后通过点击链接访问应用,比如 TheTest://testUrl. 而如果是普通的http或者https链接,那么就会用safari打开。
如果我有一个资源,比如是一个pdf文件,在游览器中可以访问,地址是 http://test.com/aaa.pdf 。如果ios设备安装了我的app,那么在app中也能查看这个pdf。客户想要这样一个功能:点击了一个链接,如果安装了app,那么在app中打开,如果没装,那么在safari打开。
在ios9以前,用一个链接打开也有方法,但要多次跳转,十分不友好,基本不会使用。最常用的方法是建立2个url,一个是http://test.com/aaa.pdf这样的,一个是TheTest://aaa.pdf这样的,用户自己选择打开哪一个,也不太友好。
ios9 的 Support Universal Links 就能解决这个问题。
我们只需要在邮件中写一个标准的http链接,就是http://test.com/aaa.pdf这样的,点击之后,系统会判断是否有程序注册了这个链接,如果注册了,不会打开safari,而会打开这个程序。没有注册的话,还是通过safari打开。
具体实现如下:
1.配置ios工程:
这2个链接,就表示程序会到这2个domain取具体的配置文件。为什么要到服务器取?这样就能增加一层验证,防止恶意程序代替正常的网站链接启动。
The file needs to be accessible via HTTPS—without any redirects—at https://<domain>/apple-app-site-association or https://<domain>/.well-known/apple-app-site-association.
注意,必须是https的链接,而且不能有任何重定向操作。那么是不是必须使用经过CA认证的https呢?也就是说,能不能自己在内网上建立一个https服务器,让universal links工作呢?
这个问题,我到官方论坛提问了,链接如下 https://forums.developer.apple.com/thread/51619 ,必须使用CA认证的证书!如果实在内网测试,应该自己模拟CA颁发证书,并让系统信任自己创建的ca,那么问题又来了,如何让ios系统信任这个ca呢????是可以通过企业设备管理,把相关证书加入ios系统吗?
取的数据没什么特别,就是一个json数据,但是它的获取位置是固定的,要么是/apple-app-site-association,要么是
/.well-known/apple-app-site-association
:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "Q4BE9Z32J8.com.kings.test",
"paths": [ "*" ]
}
]
}
}
具体的说明可以参看官方文档。
成功后,在邮件中点击普通的http://test.com/aaa.pdf链接,就会出现下图:直接进入了程序,注意右上角,点击后可以用游览器启动
而如果用游览器启动,有下图,看上方,还能用程序启动。系统会记录下你最后一次的选择,下次点击http链接时,会重复你的上次的选择。
另外,针对这个Universal link 功能,ios10加入了openURL:options:completionHandler:这个新api,其中options的参数有一个UIApplicationOpenURLOptionUniversalLinksOnly选项,默认是false,如果设置为true,当打开一个http这样的连接时,如果没有安装注册这个url的ios应用,函数就会返回错误,不会用safari代替打开。
iOS9 新功能:Support Universal Links,iOS10 openUrl新函数的更多相关文章
- iOS9 新功能:Support Universal Links
先看官方文档:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalL ...
- 支持iOS9 Universal links遇到的问题
记录为iOS9上的APP支持Universal links遇到的一些问题. 在Web服务器上传apple-app-site-association文件 必须支持HTTPS获取配置文件 文件名后不加.j ...
- iOS 微信打开第三方应用(Universal Links 和 URL Schemes)
一.前言 项目中时常有这种需求, 是通过链接跳转到应用内部,现在iOS主流的方案有两个 Schema: 常用在于一个应用跳转到另一个应用内部,属于应用间的跳转.当然ios9以下,网页可以通过schem ...
- Android Studio 3.0 下载 使用新功能介绍
谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.g ...
- iOS 通知的变化ios9-10,新功能展示
二.新功能展示 1 使用 /iOS通知新功能玩法 2. 全面 iOS10里的通知与推送详情 一.变化 四.Notification(通知) 自从Notification被引入之后,苹果就不断的 ...
- HTML5基本特性和新功能
HTML5的基本特征 1.向前兼容性 核心理念——平滑过渡! 不支持html5的浏览器可以向前兼容,并不会影响web内容的显示! 2.跨平台运行性 从pc浏览器到手机.平板电脑,甚至是智能电视. 只要 ...
- Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看
Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看 來自TechEd North America 2013的第一手消息 以下資訊均 ...
- Atitit.linux 内核 新特性 新功能
Atitit.linux 内核 新特性 新功能 1. Linux 3.2内核新特性 2012-02-12 22:41:471 1.1. EXT4:支持更大的块2 1.2. BTRFS:更快的数据清理 ...
- 【老孟Flutter】Flutter 2的新功能
老孟导读:昨天期待已久的 Flutter 2.0 终于发布了, Flutter Web和Null安全性趋于稳定,Flutter桌面安全性逐渐转向Beta版! 原文链接:https://medium.c ...
随机推荐
- try}-with-resources
今天看前人代码的时候,发现了一个以前一直没用过的东西, 公司目前使用的是jdk1.8(vertx3需要), 在某处代码里有这样一行代码: try( FileOutputStream fos=new F ...
- linux(Cnetos7)安装jdk和tomcatmysql,tomcat
mysqllinux版本的地址 安装包下载 下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-1.el6.x86_64.rp ...
- HMM拓扑与转移模型
<Topology> <TopologyEntry> <ForPhones> 1 2 3 4 5 6 7 8 </ForPhones> < ...
- python中的join.set ,copy以及删除注意事项:
1 ,join : 将对象以字符串的方式拼接成一个整体 for E : li = ["李白", "是", "诗仙"] s = & ...
- Python基础3(2017-07-20)
1.文件操作 现有文件如下: We were both young when I first saw you 当我第一次看见你的时候,我们都还年轻 I close my eyes and the fl ...
- Css/Js推荐类库
animate.css https://daneden.github.io/animate.css WOW.js http://mynameismatthieu.com/WOW owl.carouse ...
- Shiro入门 - 通过自定义Realm连数数据库进行认证(md5+salt形式)
shiro-realm-md5.ini [main] #定义凭证匹配器 credentialsMatcher=org.apache.shiro.authc.credential.HashedCrede ...
- python第l六天,lambda表达式学习,涉及filter及Map。
在python中lambda表达式可以作为匿名函数来使用,举一个简单的栗子: 以前我们写两个数相加的函数需要 #以前我们写两个数相加的函数,需要这样写 >>> def sum(x,y ...
- 围在栅栏中的爱WriteUp(附QWE密码加解密脚本)
题目的链接:http://www.shiyanbar.com/ctf/1917 1.首先题目给出的是摩尔斯电码: 在下面的网站上解密:https://www.cryptool.org/en/cto-c ...
- 【php】下载站系统Simple Down v5.5.1 xss跨站漏洞分析
author:zzzhhh 一. 跨站漏洞 利用方法1,直接在搜索框处搜索<script>alert(/xss/)</script>//',再次刷新,跨站语句将被 ...