Universal Links实用教程

Universal Links(通用链接)

若是你的app支持通用连接,那么iOS 9用户点击连接到你的网站,能够准确地定位到到手机安装的你的APP应用程序,而不经过Safari去实现。若是用户手机没有安装你的APP应用程序,经过通用链接能利用一个连接到你的网站,而不用经过在Safari打开你的网站。web

通用连接给你以下几个关键的好处

1. Unique.惟一性

不像自定义URL schemes协议头那样,通用的连接不能被其余应用程序声称,由于他们使用标准HTTP或HTTPS连接你的网站。json

2. 安全

若是iOS用户安装了你的应用,应用程序启动(不是登录)时就会检查你上传到web服务器json文件(apple-app-site-association),以确保你的网站容许应用程序打开url。只有你能建立和上传这个文件,因此专门配置的网站与你的应用程序链接之间是安全的。数组

3. 方便,自由性

触发通用链接时,若是用户没有安装你的应用程序,点击这个通用链接会打开Safari加载你的网站内容,这是用户所指望。安全

4. 简单

只需一个URL就能根据用户有没有安装你的APP,决定加载你的网站仍是你的APP应用程序。bash

5. 私有性

其余应用程序能够与你的应用程序通讯,而不须要知道你的应用程序是否在用户手机中安装。服务器

添加支持通用连接的步骤

1.建立和上传apple-app-site-association文件

文件内容以下:app

{
"applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamID.bundleId",
                "paths": ["/mall/app_download/app","/app_download/app"]
            },
            {
                "appID": "teamID.bundleId",
                "paths": ["/path/app_download/app","/app_download/app","*"]
            }
        ]
    }
}
复制代码

注意事项以下:dom

  1. details里面的内容能够为数组,也就是能够配置多个应用的Universal Links
  2. apple-app-site-association`文件名千万不能写错啊,没有后缀
  3. appID 的 格式为 teamID.bundleId形式
  4. paths配置,实际上就是限制哪些路径能够唤醒app,哪些路径不能唤醒app。一下为path规则:
    • 使用*配置,则整个网站均可以使用
    • 使用特定的URL,例如/wwdc/news/来指定某一个特殊的连接
    • 除了使用*来匹配任意字符,你也可使用 ?来匹配单个字符,你能够在路径当中结合这两个字符使用,例如 /foo/*/bar/201?/mypage
    • 配置的paths路径,是区分大小写的

2.将这个文件上传到你的服务器,能够将这个文件放到服务器的根目录下,也能够放到.well-known这个子目录下。

注意事项以下:网站

  • 确保使用https://yourdomain.com/apple-app-site-association这个连接能够访问到,yourdomain.com为你的服务器域名。ui

  • 也可使用苹果的验证网站,验证文件是否能被苹果请求到。若是是未上线的应用,使用验证网站时可能出现以下提示:

  • 出现该提示为apple-app-site-association文件配置正确。

  • 出现404错误码提示,则为apple-app-site-association文件未上传成功,或者使用https://yourdomain.com/apple-app-site-association路径没法访问。

3.配置app,而后在app里面添加代理方法

  1. app IDs 配置

  1. 项目配置

    在项目的Capablities中开启Associated domains,以下图:

注意事项:

  • domains能够添加多个,前缀必须为applinks:applinks:后为你的服务器的域名。
  • 服务器必需要支持https。
  1. 代码接收Universal Links唤醒

    在appdelegate中实现下面这个方法,当使用Universal Links唤醒app时就执行这个方法。

    -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
    {
        if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
            NSURL *webUrl = userActivity.webpageURL;
            if ([webUrl.absoluteString containsString:@"?"]) {
                
            }
        }
        return YES;
    }
    复制代码
  2. 验证以上配置

    快捷验证,在备忘录中输入https://yourdomain.com/apple-app-site-association,长按这个连接,出现下图提示则配置成功。

相关文章
相关标签/搜索