iOS 9上的网页唤醒APP(Universal Links)

949 阅读1分钟

本文不介绍这些该死的东西是干什么的,只告诉你怎么用,言简意赅。 当然,下面是必要条件

有一个注册的域名
通过 SSL 访问域名
支持上传一个 JSON 文件到你的域名
至少 iOS 9 beta 2 版本 
至少 Xcode 7 beta 2 

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

用 applinks: 前缀添加所有域名, 同时不要忘了包含所有可能需要的子域名。 添加完了?工程里是不是多了一个这样的东西?

点开,记得在targetmembership内打钩。

然后,去 苹果开发账号页面获取你的TeamId,很重要,当然,还需要你工程的Bundle Id。

创建一个json 格式的apple-app-site-associatio 文件如下:

  {
      "applinks": {
          "apps": [],
          "details": [
              {
                  "appID": "TEAMID.Bundle Id",
                  "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*" ]
              },
              {
                  "appID": "TEAMID.BundleID2",
                  "paths": [ "*" ]
              }
          ]
      }
  }

将TEAMID换成你从苹果开发者页面取出的TEAMID,Bundle Id则是上图中的Bundle Id。 然后, 上传这个文件到你的域名根目录。 https://branch.io/resources/universal-links/ 打开验证页面,查看配置的内容是否通过 如果都是通过的则可进行下一步

Paste_Image.png
若有一项未通过,则需要逐步排查问题 一般情况下是json头部文件有问题,或是服务器不支持SSL协议

最后,appdelegate中

application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler

Paste_Image.png