iOS AppLink集成

iOS AppLink集成

1.前言

iOS 9 之后,苹果推出的通用链接:一种能够方便的通过传统 HTTP 链接来启动 APP, 使用相同的网址打开网站和 APP。
其优点如下:

  • 唯一性: 不像自定义的 scheme,因为它使用标准的 http/https 链接到你的 web 站点,所以它不会被其它的 app 所声明.另外,Custom URL scheme 因为是自定义的协议,所以在没有安装 app 的情况下是无法直接打开的,而 universal links 本身是一个 HTTP/HTTPS 链接,所以有更好的兼容性。
  • 安全:当用户的手机上安装了你的 app,那么 iOS 将去个推的服务器上去下载你配置的说明文件(这个说明文件声明了你的app可以打开哪些类型的 http 链接)。因为这些配置文件只有你的个推账号可以操作,所以你的配置地址和你的 app 之间的关联是安全的。
  • 可变:当用户手机上没有安装你的 app 的时候,Universal Links 也能够工作.如果你愿意,在没有安装你的 app 的时候,用户点击链接,可以调整到你的推广页面或者 APPStore 中你的 app 详情页面引导用户下载 app。(链接的落地页可以在个推后台进行配置,选择商品页或者APPStore详情页面。)
  • 简单:一个 URL 链接,可以同时作用于网站和 打开app。
  • 私有:其它 app 可以在不需要知道你的 app 是否安装了的情况下和你的 app 相互通信。

2.个推平台域名注册

参见:AppLink配置说明书>AppLink配置中的4. 在【域名配置】对域名进行配置

3.开启Domains权限

3.1 开启对应的AppIDs证书的Associated Domains服务

3.2 Xcode项目,开启项目的Associated Domains

如上图,开启项目Associated Domains 开关, 并添加Domains, 这里需要手动添加在个推平台上申请到的域名列表,格式如:applinks:link.applk.cn。

4.代码集成

  • 短信或者页面中对应的 UniversalLinks 用户点击系统将回调
    application:continueUserActivity:restorationHandler 该系统接口。

  • 处理 NSUserActivityTypeBrowsingWeb 类型 links 触发。

  • 调用个推的 handleApplinkFeedback 接口进行点击回执统计,并接受个推接口返回 payload 消息,进行业务逻辑处理。
-(BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {

    //系统用 NSUserActivityTypeBrowsingWeb 表示对应的 universal HTTP links 触发
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL* webUrl = userActivity.webpageURL;

        //处理个推APPLink回执统计
        //APPLink url 示例:https://link.applk.cn/getui?n=payload&p=mid, 其中 n=payload 字段存储下发的透传信息,可以根据透传内容进行业务操作。
        NSString* payload = [GeTuiSdk handleApplinkFeedback:webUrl];
        if (payload) {
            NSLog(@"个推APPLink中携带的透传payload信息: %@,URL : %@", payload, webUrl);
            //TODO:用户可根据具体 payload 进行业务处理
        }
    }
    return true;
}

5.效果展示

注意:短信中的 Url 在用户点击情况下,如果安装了目标 APP 情况下,则点击直接跳转进入App,如果用户没有安装目标 APP 则可在个推 APPLink 平台进行配置,选择打开指定的推广页面或者跳转进入 APPStore 商品详情页面。

开发者中心 SDK 下载

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询