iOS Universal Link(通用链接)

作者: cyh老崔 | 来源:发表于2017-05-22 23:17 被阅读661次

说明

此系列共有两篇文章, 如需要实现微信跳转到app功能, 阅读过此篇文章后, 可再查看此文章: iOS Universal Link 结合第三方实现微信唤起app

简介

Universal Link, 中文是通用链接. 可以通过http(s)来唤醒App.优点:

  1. 用原生的webView来打开用户浏览的文章链接
  2. 个人认为, 利用此技术可以实现Deep Link

<a href="https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2">官方文档点击</a>

集成步骤

  1. Xcode中开启Associated Domains
  2. Associated Domains中配置支持的Domains(域名)
  • <em>注:</em> Domain必须以applinks:开头
    `Xcode`中配置`Associated Domains`.png
  • 如上面配置过后, 任何以app.cuiyuhe.com开头的URL请求都可以被拦截.
  1. Bundle ID开启Associated Domains
`bundle id`的配置.png
  1. 配置固定格式的一个json文件, 此文件命名为apple-app-site-association.
  • App运行时会下载此文件.此文件用来链接与App通信.
  • 此文件必须放在https server的根路径, 或.well-known路径下.
  • 所谓https, 即最终这个文件的下载路径必须是https开头的路径
    格式如下:
{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "49LBJ5Y459.com.cuiyuhe.move",
                "paths": [ "*" ]
            }
        ]
       }
}

解释:

  • 只需要更改details数组中的值即可, 官方说可配置不超过20-30个.
  • 第一个字典值是官方示例
  • [ "*" ] 表示拦截任何路径, 任何之前配置的, 以app.cuiyuhe.com开头的URL请求
  • appID 格式为 TeamID.BundleID. TeamID登录开发者apple id即可得到:
    TeamID.png

代码中的相关支持

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity 
restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
    
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *toURL = userActivity.webpageURL;
        NSString *urlString = toURL.absoluteString;
        NSString *srcHost = toURL.host;
        if ([srcHost isEqualToString:@"app.cuiyuhe.com"]) {
            
        } else {
           
        }   
    }
    return YES;
}

测试是否成功

  1. 重新下载证书, 因为之前修改了证书Associated Domains属性
  2. 在手机备忘录中输入测试链接, 如:
    http://app.cuiyuhe.com/api/v1/post/133662/
    长按有 在xx中打开提示, 即代表成功:
    配置成功截图

其它

测试配置的文件 apple-app-site-association 的 <a href="https://search.developer.apple.com/appsearch-validation-tool/">官方测试URL</a>

  • 注: 我的App尚未发布时测试错误如下, 不知是不是有延迟:
    测试错误
以上为我使用Universal Link的总结.

相关文章

网友评论

    本文标题:iOS Universal Link(通用链接)

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