腾讯移动推送
  • 信鸽推送基础介绍
  • 新版用户迁移指南
    • 概述
    • 迁移前准备
    • Android 迁移指南
    • iOS 迁移指南
    • API迁移指南
    • 迁移文档FAQ
  • Android接入
    • Android 推送服务介绍
    • Android SDK 3.* 集成指南
    • Android SDK 4.* 集成指南
    • Android SDK 4.*信鸽动态加载厂商通道功能
    • Android SDK API
    • 华为推送通道集成指南
    • 小米推送通道集成指南
    • 魅族推送通道集成指南
    • FCM通道集成指南
    • Android SDK 常见问题
    • Android SDK Demo使用方法
    • Android SDK 错误码对照表
    • Android P 兼容方法
  • iOS接入
    • iOS 推送服务介绍
    • iOS SDK 集成指南
    • iOS SDK API 接口文档
    • iOS 推送证书说明
    • iOS 推送环境选择说明
    • iOS关于 IDFA 插件说明
    • iOS 关于通知服务扩展的使用说明
    • iOS SDK 错误码对照表
    • iOS SDK 常见问题
  • 服务端API接入
    • 服务端其他语言
  • 信鸽推送管理台
    • 管理台权限说明
    • 管理台数据展示说明
  • REST API V3
    • REST API 概述
    • Tag API
    • Push API
    • Account API
  • 最近更新
  • 名词解释
  • 常见问题
Powered by GitBook
On this page
  • 版本迁移指南
  • 自动集成方式
  • Pod名称变更
  • 托管仓库变更
  • 新增支持 Carthage 导入
  • 手动导入
  • SDK包下载
  • 工程文件变更
  • 依赖系统库变更
  • 接口变更
  • 抵达数据上报集成
  • 测试
  • 指定单设备推送
  • 注销免费服务

Was this helpful?

  1. 新版用户迁移指南

iOS 迁移指南

PreviousAndroid 迁移指南NextAPI迁移指南

Last updated 4 years ago

Was this helpful?

版本迁移指南

如您接入的免费版2.x的版本,请参考接入。 为保障迁移后的正常使用,请您升级至iOS V1.2.5.3及以上版本,以下是针对从信鸽免费版本3.x迁移到腾讯云TPNS iOS V1.2.5.3及以上版本的变更说明:

自动集成方式

Pod名称变更

通过Cocoapods 下载地址: pod 'TPNS-iOS'

托管仓库变更

因仓库地址变更为腾讯工蜂首次通过 pod 下载需要注册登录,并在【账户】菜单栏中设置账号和密码,然后在 Terminal 中设置腾讯工蜂的账号和密码。后续即可正常使用,当前 PC 不需要再次登录。

新增支持 Carthage 导入

在 Cartfile 文件中指明依赖的第三方库: github "xingePush/carthage-TPNS-iOS"

手动导入

SDK包下载

请前往 下载 iOS SDK 压缩包、解压。

工程文件变更

变更前:

XGPush.h 、 libXG-SDK.a

变更后:

XGPush.h 、libXG-SDK-Cloud.a、 XGMTACloud.framework

依赖系统库变更

在 Build Phases 下,请将以下信鸽 3.x 版本系统依赖库做相应变更。

变更前:

 * CoreTelephony.framework
 * SystemConfiguration.framework
 * UserNotifications.framework
 * libXG-SDK.a 
 * libz.tbd
 * libsqlite3.0.tbd

变更后:

* XGMTACloud.framework
* CoreTelephony.framework
* SystemConfiguration.framework
* UserNotifications.framework
* libXG-SDK-Cloud.a 
* libz.tbd
* CoreData.framework
* CFNetwork.framework
* libc++.tbd

接口变更

与免费版本对比,部分 API 接口做了以下变更:

不推荐再调用 reportXGNotification* 数据统计上报接口,SDK已内部自动处理。

变更前:

 /**
     收到推送的回调
     @param application  UIApplication 实例
     @param userInfo 推送时指定的参数
     @param completionHandler 完成回调
     */
    - (void)application:(UIApplication *)application 
        didReceiveRemoteNotification:(NSDictionary *)userInfo 
            fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
    {
        [[XGPush defaultManager] reportXGNotificationInfo:userInfo];
        completionHandler(UIBackgroundFetchResultNewData);
    }
    // iOS 10 新增回调 API
    // App 用户点击通知
    // App 用户选择通知中的行为
    // App 用户在通知中心清除消息
    // 无论本地推送还是远程推送都会走这个回调
#if __IPHONE_OS_VERSION_MAX_ALLOWED >=     __IPHONE_10_0
    - (void)xgPushUserNotificationCenter:(UNUserNotificationCenter *)center 
        didReceiveNotificationResponse:(UNNotificationResponse *)response 
        withCompletionHandler:(void (^)(void))completionHandler 
        {
            [[XGPush defaultManager] reportXGNotificationResponse:response];
            completionHandler();
    }

    // App 在前台弹通知需要调用这个接口
    - (void)xgPushUserNotificationCenter:(UNUserNotificationCenter *)center
         willPresentNotification:(UNNotification *)notification 
             withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
             {
                 [[XGPush defaultManager] reportXGNotificationInfo:notification.request.content.userInfo];
                 completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);
    }
    #endif

变更后:(如果没有自定义处理需求,则不再需要实现以下回调)

/**
  收到推送的回调
  @param application  UIApplication 实例
  @param userInfo 推送时指定的参数
  @param completionHandler 完成回调
  */
 - (void)application:(UIApplication *)application 
             didReceiveRemoteNotification:(NSDictionary *)userInfo 
                     fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
     {
         completionHandler(UIBackgroundFetchResultNewData);
 }
 // iOS 10 新增回调 API
 // App 用户点击通知
 // App 用户选择通知中的行为
 // App 用户在通知中心清除消息
 // 无论本地推送还是远程推送都会走这个回调
#if __IPHONE_OS_VERSION_MAX_ALLOWED >=     __IPHONE_10_0
 - (void)xgPushUserNotificationCenter:(UNUserNotificationCenter *)center 
             didReceiveNotificationResponse:(UNNotificationResponse *)response 
             withCompletionHandler:(void (^)(void))completionHandler 
             {
                     completionHandler();
 }

 // App 在前台弹通知需要调用这个接口
 - (void)xgPushUserNotificationCenter:(UNUserNotificationCenter *)center
              willPresentNotification:(UNNotification *)notification 
                      withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
                      {
                              completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);
 }
 #endif

抵达数据上报集成

注意 :如果未集成此接口,则统计数据中消息『抵达数』与『点击数』一致。

测试

指定单设备推送

变更前:

免费版本使用 Device Token(长度为64位)对指定设备进行推送,获取 Device Token 代码示例:

//获取 APNS 生成的 Token
 [[XGPushTokenManager defaultTokenManager] deviceTokenString];

变更后: 腾讯云版本使用 TPNS Token(长度为36位)对指定设备进行推送,获取 TPNS Token 代码示例:

//获取 TPNS 生成的 Token
[[XGPushTokenManager defaultTokenManager] xgTokenString];

注销免费服务

如果App的推送服务是从免费集群迁移到付费集群,在两个集群同时推送,可能会出现重复消息。因此需要调用TPNS SDK(1.2.5.3+)的接口将设备信息在免费集群中进行反注册,从而使得在两个集群同时推送时,避免出现重复消息。

接口

// 免费集群的 accessId(支持免费 SDK V2、V3版本)
@property uint32_t freeAccessId;

用法

  • 引入头文件: XGForFreeVersion.h

  • 在 startXGWithAppID:appKey:delegate: 之前调用此接口,参考示例:

[XGForFreeVersion defaultForFreeVersion].freeAccessId = 2200262432;
[[XGPush defaultManager] startXGWithAppID: <#your tpns access ID#>appKey:<#your tpns access key#> delegate:<#your delegate#>];

为了实现抵达数据上报和富媒体消息的功能,SDK 提供了 Service Extension 接口,可供客户端调用,从而可以监听消息的到达和发送富媒体消息,需要您实现此接口,接入指南请参见 。

SDK集成文档
工蜂地址
腾讯移动推送控制台
通知服务扩展的使用说明