APPLink 接入

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 商品详情页面。

通知
2018.09.06 JAVA SDK 4.1.0.0

修改新鉴权方式 支持iOS语音播报 支持消息撤回和覆盖

......
2018.08.30 Android SDK 2.12.5.0

新增通知覆盖、撤回功能 兼容Android9.0

......
2018.08.09 PHP SDK 4.0.1.10

添加php新加接口功能文档说明

......
2018.07.19 Android SDK 4.3.1.0

增加Applink点击回执接口 修复若干其他bug以及性能优化

......
2018.06.19 iOS SDK 2.3.0.0

新增 AppLink 服务及统计支持。 新增短信补量推送服务。

......

文档中心搜索