SDK接口介绍及示例
所有文档
menu

移动APP推送服务

SDK接口介绍及示例

SDK使用的唯一入口类为SPSDKLib,本地通知配置内容请使用SPNotificationConfig对象,下面详细介绍。

启动SDK接口

接口描述

+ (void)startSDKWithAppkey:(NSString *)appkey secretKey:(NSString *)secretKey CUID:(NSString *)cuid;

用于启动SDK,调用一次即可,建议- application:didFinishLaunchingWithOptions: 方法中调用。

AppKey和SecretKey生成,请联系@惠宇(huiyu@baidu.com)。

参数说明

参数名 参数类型 示例 说明
appkey NSString* @"1000123" 注册App时生成
secretKey NSString* @"d392x1b0a822963506d2dbcxdd5b0336" 注册App时生成
cuid NSString* @"cud-xxx" 业务线唯一用户标识

返回值说明

注册DeviceToken接口

接口描述

+ (void)registerDeviceToken:(NSString *)deviceToken;

App向Apple APNs申请Device Token成功后,需要调用此接口把Device Token上传到推送服务上,用于后续推送。

由于推送服务需借助APNs实现推送消息功能,务必调用此接口,将客户端收到的Device Token上传到推送服务。

参数说明

参数名 参数类型 示例 说明
deviceToken NSString* @"9b6c8c18a0ecfabcdf68fecf61497ec3f527930f701fd1720ae60a09df7c051a" 新申请或已使用的都可以

返回值说明

接收远程推送消息回执接口

接口描述

+ (void)didRevRemoteNotification:(NSDictionary *)userInfo applicationState:(UIApplicationState)applicationState;

当客户端App接收到远程通知时,通过此接口进行统计上报。

userInfo的获取分为两种:

  • iOS10及以上举例:
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler {
    NSDictionary * userInfo = response.notification.request.content.userInfo; // 获取userInfo
    [SPSDKLib didRevRemoteNotification:userInfo applicationState:[[UIApplication sharedApplication] applicationState]];
}
  • iOS10以下举例:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    [SPSDKLib didRevRemoteNotification:notification.userInfo applicationState:[[UIApplication sharedApplication] applicationState]]; // 直接使用userInfo
}

参数说明

参数名 参数类型 示例 说明
userInfo NSDictionary* aps消息体 接收到的远程推送消息的userInfo对象
applicationState NS_ENUM UIApplicationStateActive App处理推送消息所处的状态

返回值说明

添加本地消息接口

接口描述

+ (void)addLocalNotification:(SPNotificationConfig *)notificationConfig;

需要立即或定时触发本地消息时,调用此接口,notificationConfig为本地消息配置。

参数说明

参数名 参数类型 示例 说明
notificationConfig SPNotificationConfig* 如下 包含所有消息内容和属性

SPNotificationConfig 使用举例

SPNotificationConfig作为配置本地消息使用,包含本地消息的内容,以及触发的时间配置。

  • iOS10及以上举例:
// 举例1: 每周一上午8点30分提醒
SPNotificationConfig *config = [[SPNotificationConfig alloc] init]; 
config.repeat = YES; // 设置是否重复
NSDateComponents *components = [[NSDateComponents alloc] init];
components.weekday = 2;
components.hour = 8;
components.minute = 30;
config.dateComponents = components; // 设置触发时间
SPNotificationContent *content = [[SPNotificationContent alloc] init];
content.title = @"local notification";
content.body = @"xxxxxxxxxxxxxxxx";
config.content = content; // 设置消息内容

[SPSDKLib addLocalNotification:config]; // 添加本地消息

// 举例2: 每小时提醒一次
SPNotificationConfig *config = [[SPNotificationConfig alloc] init];
config.repeat = YES; // 设置是否重复
config.timeInterval = 60 * 60; // 设置重复时间间隔为1个小时
  
SPNotificationContent *content = [[SPNotificationContent alloc] init];
content.title = @"local notification";
content.body = @"xxxxxxxxxxxxxxxx";
config.content = content; // 设置消息内容
  
[SPSDKLib addLocalNotification:config]; // 添加本地消息

注意:dateComponents和timeInterval同时设置时,会按照dateComponents的时间设置本地推送消息

  • iOS10以下举例:
// 举例3: 30秒后触发本地通知
SPNotificationConfig *config = [[SPNotificationConfig alloc] init];
  
NSDate *now = [NSDate date];
config.fireDate = [NSDate dateWithTimeInterval:30 sinceDate:now]; // 30秒后触发

SPNotificationContent *content = [[SPNotificationContent alloc] init];
content.title = @"local notification";
content.body = @"xxxxxxxxxxxxxxxx";
config.content = content; // 设置消息内容

[SPSDKLib addLocalNotification:config]; // 添加本地消息

注意:针对iOS10以下, repeat无效(config.repeat ),需App从SDK外多次创建本地消息

返回值说明

删除本地消息接口

接口描述

+ (void)cancelLocalNotificationWithIdentifier:(NSArray *)notificationIdentifiers; // 删除指定未触发本地消息
 + (void)clearAllLocalNotifications; // 删除全部未触发本地消息

两个接口均用于删除已添加未触发的本地消息。

  • + (void)cancelLocalNotificationWithIdentifier:方法按照指定notificationIdentifier进行删除
  • + (void)clearAllLocalNotifications 清空所有本地未触发消息

SPNotificationConfig对象创建时,会生成notificationIdentifier,App需要记下notificationIdentifier,用于后续的指定删除动作。

举例:

SPNotificationConfig *config = [[SPNotificationConfig alloc] init];
... // 通知配置
config.notificationIdentifier; // config创建成功,会自动生成notificationIdentifier
[SPSDKLib cancelLocalNotificationWithIdentifier:@[config.notificationIdentifier]]; // 删除

参数说明

参数名 参数类型 示例 说明
notificationIdentifiers NSArray* @[@"identifier1",@"identifier2"] 注册App时生成

返回值说明

badge同步接口

接口描述

+ (void)setBadge:(NSInteger)badge withCompletion:(SPAsyncOperationCompletion)completion;

推送平台具备向客户端推送角标(badge)的能力,如果希望推送平台进行个性化推送,可以在客户端调用此接口同步客户端当前角标数量到推送平台。

SPAsyncOperationCompletion 为block,用于异步回调使用,回调方法参数为BOOL success, 表示接口是否执行完成。

举例:

[SPSDKLib setBadge:9 withCompletion:^(BOOL success) { 
	// success 同步是否成功,继续执行自己的逻辑
}];

参数说明

参数名 参数类型 示例 说明
badge NSInteger 9 注册App时生成

回调说明

参数名 参数类型 示例 说明
SPAsyncOperationCompletion NSArray* success 向推送平台同步后进行回调

批量增加Tag接口

接口描述

+ (NSString *)addTags:(NSSet<NSString *> *)tags withCompletion:(SPAsyncOperationCompletion)completion;

批量设置Tag,用于根据Tag进行分类推送。

举例:

NSSet *tags = [NSSet setWithObjects:@"110", @"120", nil];
[SPSDKLib addTags:tags withCompletion:^(BOOL success) {
  // success 同步是否成功,继续执行自己的逻辑
}];

参数说明

参数名 参数类型 示例 说明
tags NSSet 需要增加的tag集合

回调说明

参数名 参数类型 示例 说明
SPAsyncOperationCompletion BOOL success 向推送平台同步后进行回调

其他Tag操作接口

接口描述

// 删除指定Tag集合
+ (NSString *)deleteTags:(NSSet<NSString *> *)tags withCompletion:(SPAsyncOperationCompletion)completion;
// 批量更新Tag,删除旧Tag
+ (NSString *)setTags:(NSSet<NSString *> *)tags withComletion:(SPAsyncOperationCompletion)completion;
// 清除所有Tags
+ (NSString *)clearTagsWithComletion:(SPAsyncOperationCompletion)completion;
// 查询现有Tags,结果在completion中返回
+ (NSString *)getTagsWithCompletion:(void(^)(BOOL, NSSet<NSString *> *))completionBlock;  

上述四个接口为对tag的修改和删除操作,传入参数和block使用方法同上.

参数说明

参数名 参数类型 示例 说明
tags NSSet - 需要增加的tag集合

回调说明

参数名 参数类型 示例 说明
SPAsyncOperationCompletion BOOL success 向推送平台同步后进行回调

获取PushId接口

接口描述

+ (NSString *)getPushId;

参数说明

返回说明

参数名 参数类型 示例 说明
PushId NSString CEA0CCA6F89D33BFE35F22592B6237401CA662CC -
上一篇
SDK使用流程
下一篇
业务支持