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 | - |