iOS 9的 Universal Links 通用链接使用介绍

一、 通用链接介绍

Apple 推出通用链接:一种能够方便的通过传统 HTTP 链接来启动 APP, 使
用相同的网址打开网站和 APP。

当你的应用支持通用链接,iOS9 之后 , 用户可以点击一个链接跳转到你的网站,并获得无缝重定向到您安装的应用程序,而无需通过 Safari 浏览器。如果你的应用不支持的话,点击链接将会用 Safari 来打开。

二、通用链接的优点

通用链接比自定义的URL链接有几处尤为突出的好处,具体来说,通用链接:

独特性:与自定义的URL链接相比,通用链接不能被其他的应用程序所访问,因为

它们使用的是标准的HTTP 或 HTTPS 链接到你的网站。

安全性:当用户安装应用程序,iOS会检查您已经上传到web服务器文件,以确

保您的网站允许你的应用程序能打开代表它的URL 文件,只要你创建并且上传该

文件,那么你的应用和服务器之间的关联是安全的。

灵活性:当你的应用程序没有被安装的时候,通用链接照样能够工作。当用户没有

安装你的应用程序,点击该链接,将会以用户所期望的以Safari的形式访问。

简单性:通用链接既能支持你的网站,又能支持你的应用

私有性:其他的应用程序能和你的应用程序通信,不管你的应用是否被安装。

传统例子:

传统的密码重置流程是这样的:
    1, 您忘记了密码,让你点击“忘记密码”按钮,在应用程序l 输入您的电子邮件,并点击下一步
    2, 请检查您的电子邮件,点击重置密码链接
    3, Safari中的密码重置页面打开
    4, 您输入新密码并保存
    5, 切换回应用程序,并登录使用表示新密码

使用通用链接后:

随着通用的链接,我们可以从过程中完全删除 Safari 浏览器。 现在,用户可以重新
设置在应用程序的密码,允许应用程序来复位后也自动登录他们进来。 这是所有可能
的同时还具有重置密码的电子邮件的安全性,以确认身份。

它可以被用来大大提高以前烦人的工作流程的用户体验。

视频演示:http://t.cn/R4pxxB5 (利用“通用链接”改善“密码重置功能)

使用通用链接后有四种打开方式效果:

第一种:安装客户端后点击链接(检测应用是否安装,如果安装直接打开应用)

第二种:长按链接选择 Safari 中打开

第三种:长按链接选择在 XXX 中打开

第四种:删除应用后点击链接(检测应用是否安装,如果没有安装在 Safari 中
打开网址)

三、 通用链接的关键实现条件

  • 有一个注册的域名
  • 域名可通过 SSL 访问(应该是需要有效的证书)
  • 支持上传一个 JSON 文件到域名
  • 至少 iOS 9 beta 2 版本
  • 至少 Xcode 7 beta 2
  • 需要真机测试,模拟器不支持通用链接
  • web server 需要支持 https,客户端需要通告 https 访问,并且不支持任何重定向

四、 通用链接实现步骤

1, 开启 Associated Domains 域:

进入苹果Apple Developer --- Member Center - Certificates, Identifiers & Profiles – Identifiers - App IDs
–Edit 然后开启打钩 Associated Domains 后保存。

2, 添加 Associated Domains 域:

说明:你的 APP 域名, 必须用 applinks: 前置它:还添加一些你可能
拥有的子域和扩展(www.domain.com, news.domain.com 等等)。

作用:配置之后你的 APP 会自动从你的域名请求一个特殊的 JSON 文
件 apple-app-site-association。当你第一次启动 APP,它会从
https://domain.com/apple-app-site-association 下载这个文件。

操作:项目 targets->Capabilities->Associated Domains

3, 上传 apple-app-site-association 文件到服务器的根目录:

注意事项(1)

1, paths 路径是大小写敏感的
2, paths 内容可明确哪些通用链接需要被处理,哪些不需要
3, NOT 使用:为了明确指出不被处理的链接,可增加 “NOT”在链接前面

例 如 "paths": [ "/wwdc/news/", "NOT /videos/wwdc/2010/*",
"/videos/wwdc/201?/*"]

4, 你可以使用 * 明确所有的网页
5, 也可以使用一个明确的的 URL,例如 /wwdc/news/
6, 也可以追加 * 到你的 URL ,例如 /videos/wwdc/2015/*
也可以使用 * 来匹配任何字符,使用 ? 来匹配一个字符,可以在路径
中使用这种混搭的形式, 例如 /foo/*/bar/201?/mypage

注意事项(2)

1, “appID”组成部分:TeamID + BundleId TeamID
2, BundleId 一定要和 APP 的 BundleId 一致。
3, apple-app-site-association 文件不能带后缀
4, apple-app-site-association 文件需要上传到网站根目录
5, 每一个代表着应用的 字典,必须包含一个 appID 和 paths, appID 是teamID 和 bundleID,paths 是一个字符串的数组 明确着你的应用支持的通用链接和你的应用程序不支持的通用连接内容。

6, 内容如下例子

{
  "applinks": {
    "apps": [],
    "details": {
      "TBEJCS6FFP.com.domain.App": {
        "paths":[ "*" ]
      }
    }
  }
}

4, 在 APP 里处理通用链接:

例子:

为了在 APP 里支持通用链接, 你需要在 AppDelegate 里实现[application(_:continueUserActivity:restorationHandler:)]。

部分参考资料:
https://developer.apple.com/ios/download/ (AppleDeveloper)

http://www.cocoachina.com/ios/20150902/13321.html (Cocoachina)

http://www.jianshu.com/p/c2ca5b5f391f  (subvertwuxu 简书)

http://strivingboy.github.io/blog/2015/09/27/ios9 (github blog)

http://stackoverflow.com/questions/33391615/ios-9-universal-links-dont-work
http://www.jackivers.me/blog/2015/9/17/list-of-universal-link-ios-9-apps (jack blog)

http://help.tune.com/marketing-console/ios-universal-links-with-tune/

有什么错误欢迎大家补充。

时间: 2024-10-06 13:32:21

iOS 9的 Universal Links 通用链接使用介绍的相关文章

iOS Universal Links(通用链接)

公司的运维,发现最近大量的请求 /.well-known/apple-app-site-association这个文件,造成了大量的404,可是这是谁请求的呢? 其实是苹果从iOS9.3开始更改了通用链接的请求文件的路径了 从原来的 /apple-app-site-association 到现在的/.well-known/apple-app-site-association 官网文档UniversalLinks文档中 Upload the apple-app-site-association f

iOS 9 的新功能 universal links

什么是 universal links: (通用链接) 一种能够方便的通过传统 HTTP 链接来启动 APP, 使用相同的网址打开web page和 APP的方式. 第一点,链接打开网址 顾名思义 第二点,链接打开app, 通常 我们都会用 url scheme(schema)  就是 在info 中 可以配置几个目标需求app的 一个 schema (关键key 唯一应用标识),然后使用 openUrl 方法打开. 这里用 链接打开. 原因: (1)schema 方式容易暴露用户数据:如果有人

iOS 9学习系列:打通 iOS 9 的通用链接(Universal Links)

在WWDC 2015 上, Apple 为 iOS 9 宣布了一个所谓 通用链接 的深层链接特性, 视频地址为 [无缝链接到您的 App].虽然它不是一个必须实现的功能, 但还是需要引起一些注意. 在网上有太多让人迷惑和错误的信息, 这次 WWDC 本身也没有去描述细节.幸运的是, 在 HOKO 我们在我们的智能链接上添加了这一特性, 所以我们可以无缝的引导用户到 APP 上. 什么是通用链接? 很显然 Apple 正在大力推动 APP 开发者在深层链接上有更好的体验.所有的消息都围绕着深层链接

iOS 9 通用链接(Universal Links)

什么是Universal Links? 在iOS9之前,对于从各种从浏览器.Safari中唤醒APP的需求,我们通常只能使用scheme.但是这种方式需要提前判断系统中是否安装了能够响应此scheme的app,并且这种方式在微信中是被禁用了的. Universal Links是iOS9推出的一项功能,使你的应用可以通过传统的HTTP链接来启动APP(如果iOS设备上已经安装了你的app,不管在微信里还是在哪里), 或者打开网页(iOS设备上没有安装你的app). 下面简单说下怎么使用Univer

iOS通用链接(Universal Links)突然点击无效的解决方案

接上文<微信中通过页面(H5)直接打开本地app的解决方案>已经把iOS搞定并且已经正常能跑了,突然就再也用不了了... 问题描述 测试告诉我,如果从微信打开App之后,点击App右上角的应用网址之后,iOS通用链接就费了,在也用不了了,如图: 原因分析 因为你点击右上角的网址之后,默认就把通用链接禁用了,需要在Safari中恢复一下,这是iOS本身的机制. 解决方案 1.在微信里面点击右上角“...”,在Safari中打开: 2.往下拉,看到最上面的右上角有一个“打开”的按钮,点击“打开”之

iOS微信里打开app,Universal Links

这两天在弄分享,从第三方应用或者浏览器打开自己app的东西 传统的方式是通过URL Scheme的方式,但是iOS9以后又出了新的更完美的方式Universal Links. 传统的URL Scheme方式微信内置的浏览器都是封锁了所有它投资的公司之外的,只有白名单的才可以(比如京东,B站,等).Universal Links也不能算是完美的实现,但是已经是目前为止最好的了. 就说一下这个东西的介绍,就像在windows里面为某一类型的文件添加了默认的打开方式.只不过这个文件类型变成了某一个“域

[掌眼]iOS / Android / java / node.js 通用的 AES256 加解密算法

example.m NSString *text = @"text"; NSString *key32 = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding]; NSString *encryptedData = [[data AES256EncryptWithKey:key32] base64EncodedStringWi

iOS,Android,.NET通用AES加密算法

原文:iOS,Android,.NET通用AES加密算法 这两天为移动App开发API,结果实现加密验证时碰到一大坑.这里不得不吐槽下又臭又硬的iOS,Windows Server无法解密出正确的结果,Android则可以,后来使用了通用的AES256加密算法才最终搞定. 搞服务器端小伙伴没有接触过iOS,所以也没料到过这种情形.他使用了AES128 with IV的加密算法,Android端可以顺利通过加密验证. 但是iOS端使用AES128算法后出现问题,虽然可以在本地加密解密,但是无法被服

$\mathcal{Friends&#39; \ \ Links}$友情链接

\(\mathcal{JuLao \ \& \ \ Dalao}\) \(\_rqy\) \(\_stdcall\) 并肩奋斗的\(Oier\) 王旭 苑骏康 张梓淳 好盆友 角角\(qwq\) $\mathcal{Friends' \ \ Links}$友情链接 原文地址:https://www.cnblogs.com/pks-t/p/9251085.html