Universal Links

什么是Universal Links?

Universal Links是iOS9推出的一项功能,使你的应用可以通过传统的HTTP链接来启动APP(如果iOS设备上已经安装了你的app,不管在微信里还是在哪里), 或者打开网页(iOS设备上没有安装你的app)。

很显然 Apple 正在大力推动 APP 开发者在深层链接上有更好的体验。所有的消息都围绕着深层链接技术。与此同时, Apple 推出通用链接:一种能够方便的通过传统 HTTP 链接来启动 APP, 使用相同的网址打开网站和 APP。
通过唯一的网址, 就可以链接一个特定的视图到你的 APP 里面, 不需要特别的 schema 。试想一下 Twitter 使用了通用链接, 那么你每在 twitter.com 点击一个链接, 你的 iOS 设备都会在 Twitter 里面自动打开这个页面, 而不是当你没有安装时转到普通的网页。这个用户体验是顺畅的, 最重要的是用户不会失去上下文(跳到 APP 后 Safari 上不再留下空标签)。

使用Universal Links
实现通用链接不难, 但首先必须遵守一些先决条件。如下:

  • 有一个注册的域名

  • 通过 SSL 访问域名

  • 支持上传一个 JSON 文件到你的域名

  • 至少 iOS 9 beta 2 版本 [下载],这很重要, 因为如果是之前的测试版本你需要做额外的操作。

  • 至少 Xcode 7 beta 2 [下载]

1.添加域名到 Capabilities
首先,
需要在开发者中心做配置:找到对应的App ID,在Application Services列表里有Associated Domains一条,把它变为Enabled就可以了.


Universal Links_第1张图片
universal links-1.png

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

Universal Links_第2张图片
universal links-2.png

这将使你的 APP 从你的域名请求一个特殊的 JSON 文件 apple-app-site-association。 当你第一次启动 APP,它会从 https://domain.com/apple-app-site-association 下载这个文件。跳到下个步骤来了解如何构建这个文件。

{ 
       "applinks": { 
           "apps": [], 
        "details": [
              { 
                   "appID": "9JA89QQLNQ.com.apple.wwdc", 
                   "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"] 
              },
              { 
                   "appID": "ABCD1234.com.apple.wwdc", 
                   "paths": [ "*" ] 
              }
          ] 
      }
 }

说明:

appID:组成方式是 teamId.yourapp’s bundle identifier。如上面的 9JA89QQLNQ就是teamId。登陆开发者中心,在Account - Membership里面可以找到Team ID。
paths:设定你的app支持的路径列表,只有这些指定的路径的链接,才能被app所处理。星号的写法代表了可识别域名下所有链接。

上传该文件到你的域名所对应的根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。上传完后,自己先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件。

验证

在iOS设备中的备忘录中输入App能识别的链接,然后直接点击此链接,就会直接跳转到你的app了。或是长按,在出现的弹出菜单中第二项是在’XXX’中打开,这也代表着成功:


Universal Links_第3张图片
universal links-3.png

你可能感兴趣的:(Universal Links)