腾讯移动推送
  • 信鸽推送基础介绍
  • 新版用户迁移指南
    • 概述
    • 迁移前准备
    • 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
  • 版本提示
  • SDK 组成
  • Xg-Push-SDK-iOS-3.1.1
  • 集成步骤
  • 调试
  • 开启Debug模式
  • 实现 XGPushDelegate 协议
  • 观察日志
  • 推送测试工具

Was this helpful?

  1. iOS接入

iOS SDK 集成指南

版本提示

本指南使用的 SDK版本:V3.0.2,V3.1.0,V3.1.1版本

SDK 组成

Xg-Push-SDK-iOS-3.1.1

  • doc 文件夹:信鸽 iOS SDK 开发指南

  • demo 文件夹:主要包含样例工程,信鸽 SDK 也在其中

集成步骤

开发者可按照以下步骤集成。

  1. 前往信鸽管理台注册 iOS 应用并获取 App ID和 App Key

  2. 注: App ID 对应应用 Access ID,App Key 对应应用 Access Key.

  3. 下载信鸽 SDK, 解压缩

打开 demo 目录下的 sdk 文件夹,将XGPush.h以及libXG-SDK.a添加到工程

  1. 在Build Phases下添加以下 Framework:

 * CoreTelephony.framework
 * SystemConfiguration.framework
 * UserNotifications.framework
 * libXG-SDK.a 
 * libz.tbd
 * libsqlite3.0.tbd
  1. 在工程配置和后台模式中打开推送,如下图

  1. 添加编译参数 -ObjC

注意:checkTargetOtherLinkFlagForObjc报错,是因为build setting中,Other link flags未添加-ObjC
  1. 在合适的时机调用启动信鸽的 API ,并根据需要实现 XGPushDelegate 协议中的方法,开启推送服务

    • 启动信鸽服务,以下是在 AppDelegate 中做演示:

    @interface AppDelegate () <XGPushDelegate>
    @end
    
    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
        {
            [[XGPush defaultManager] startXGWithAppID:<#your AppID#> appKey:<#your appKey#>  delegate:<#your delegate#>];
        return YES;
        }
    • 在 AppDelegate 中选择实现 XGPushDelegate 协议中的方法

    /**
     收到推送的回调
     @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

调试

开启Debug模式

打开Debug模式可以在终端看到详细的信鸽Debug信息,方便定位问题。

[代码示例]

//打开debug开关
[[XGPush defaultManager] setEnableDebug:YES];

实现 XGPushDelegate 协议

在调试阶段,建议实现协议中的以下两个方法,从而能得到更详细的调试信息

/**
 @brief 监控信鸽推送服务地启动情况

 @param isSuccess 信鸽推送是否启动成功
 @param error 信鸽推送启动错误的信息
 */
- (void)xgPushDidFinishStart:(BOOL)isSuccess error:(nullable NSError *)error;

/**
 @brief 向信鸽服务器注册设备token的回调

 @param deviceToken 当前设备的token
 @param error 错误信息
 @note 当前的token已经注册过之后,将不会再调用此方法
 */
- (void)xgPushDidRegisteredDeviceToken:(nullable NSString *)deviceToken error:(nullable NSError *)error;

观察日志

如果 Xcode 控制台显示如下相似日志,表明客户端已经正确集成 SDK。

-[AppDelegate xgPushDidFinishStart:error:], result OK, error (null)
[xgpush] clientid is 331F8A86-CDF5-4C6F-BF8C-13EFB8EAD34E
package Size is 359
[xgpush]Current device token is c4294001507045547bfe64581eecb95f6d6a46c9cf9a9a0878233f6c0e8e3b8f
[xgpush info]msgLen's length is 108
[xgpush] 服务器返回码: 0
-[AppDelegate xgPushDidRegisteredDeviceToken:error:], result OK, error (null)

推送测试工具

为了方便用户测试SDK接入是否成功,使用此工具可以从APNs服务器或信鸽服务器测试推送是否送达。

PreviousiOS 推送服务介绍NextiOS SDK API 接口文档

Last updated 4 years ago

Was this helpful?

添加完成以后,库的引用如下:

点击下载

如遇到推送收不到,请参考。

信鸽测试助手
iOS常见问题文档