美文网首页
iOS 9 universal link 通用链接实现

iOS 9 universal link 通用链接实现

作者: 程序员喜欢自嘲 | 来源:发表于2019-11-18 18:20 被阅读0次

      近期发现微信登录跳转机制升级为了universal link的方式,想到17年做过的一个需求,从微信内打开的网页直接跳转至App指定页面。将曾今写过的一篇文章分享出来。

      在以往的应用中,从微信端打开 App 分享出的链接,能实现跳转至 Appstore中,再从 Appstore 中下载或者打开 App。Universal  link 技术的使用提供了更优质的体验,能直接从微信中的链接跳入到 App的指定页面。

      App从分享至微信到从微信中直接打开指定 App页面整个流程如下, 如果App 未下载,则直接跳转至 Appstore(此步骤不在本文范围讨论)。   

实现通用链路,需具备的先决条件: 

  有两个注册的域名 

  通过 SSL 访问域名 

    至少 Xcode7

    至少 iOS9.0 

如果都有了,按照下面三个步骤来实现:

1、添加域名Capabilitie

        首先,  你必须在  Xcode  的  capabilities  里  添加域名(下图蓝色处),  必须用applinks: 前置它,还可以添加一些你可能用到的子域和扩展(www.domain.com,  news.domain.com 等等)。

这将使你的 APP  从你的域名请求一个特殊的  JSON  文件  apple-app-site-association。当你第一次启动 APP,它会从  https://xxx.xxx.xxxx/apple-appsite-association  下载这个文件。

2、上传 apple-app-site-association

      切记该文件所处的域名必须支持 https访问,且不能和分享页面在同一个域名下(实践得出)。你可以打开一个文本编辑器然后写一个这样的简单 JSON  格式:

根据  paths  键设定一个允许的路径列表,  App根据不同路径触发的调起可以做不同的处理逻辑。  或只是一个星号如果你想打开 APP 而不管路径是什么。你可能想知道此处appID从何而来,就是:团队开发者账号标识+bundle  id.你可以从你的苹果开发者账号里获取你的团队标识.    最后, 上传这个文件到第 1 步中 App 所注册的域名根目录。如果你打开https://xxx.xxx.xxx/apple-app-site-association    可以看到你的文件,  那么你就可以继续下一步了。

3、在 App 里处理通用链接

分享至微信的分享页跳转至 App按钮点击事件要实现如下参考代码(蓝色部分为步骤1添加的域名):

为了在  APP 里支持通用链接,  你需要在  AppDelegate 里实现如下参考代码:     

webpageURL 即为在微信中的分享页面中触发跳转 App 按钮时的链接,因为App 中使用了通用链接技术,注册了此域名,所以在代理方法中自动获取到。  上述 iOS 代码中检测到了 game字段后发送名为  “jump”的通知,App 其它页面获取这个通知后做相应处理。 

4、记得在苹果开发者官网中检测此 app设置允许使用Associated Domains。

抛砖引玉,如有说得不够详尽之处敬请谅解

相关文章

网友评论

      本文标题:iOS 9 universal link 通用链接实现

      本文链接:https://www.haomeiwen.com/subject/euhdictx.html