TIMPush - TIMPushManager
@interface TIMPushManager : NSObject :推送插件接口类。
接口概览
注册/反注册推送服务接口
API | 描述 |
注册推送服务 (必须在 App 用户同意了隐私政策后,再调用该接口使用推送服务)。 | |
反注册关闭推送服务。 | |
RegistrationID 是推送接收设备的唯一标识 ID。默认情况下,注册推送服务成功时自动生成该 ID,同时也支持您自定义设置。您可根据 RegistrationID 向指定设备推送消息。需要注意的是,卸载并重新安装设备会更改 RegistrationID,因此需要在注册推送服务之前调用 setRegistrationID 接口。 | |
在成功注册推送服务后,可通过调用 getRegistrationID 接口获取推送接收设备的唯一标识 ID,即RegistrationID。您可根据 RegistrationID 向指定设备推送消息。 |
Push 全局监听接口
API | 描述 |
添加 Push 监听器。 | |
移除 Push 监听器。 |
自定义配置接口
设置应用前台是否展示推送
API | 描述 |
关闭 App 在前台时弹出通知栏。 |
统计 TIMPush 的推送抵达率
如果您需要统计推送的抵达和点击数据,您需要在 Notification Service Extension 中主动调用本函数。
API | 描述 |
仅支持在 Notification Service Extension 的 '- didReceiveNotificationRequest:withContentHandler:' 方法中调用。 appGroup 标识当前主 App 和 Extension 之间共享的 App Group,需要在主 App 的 Capability 中配置 App Groups 能力。 |
接口详情
函数说明
+ (void)registerPush:(int) sdkAppId appKey:(NSString *) appKey succ:(TIMPushSuccessCallback) successCallback fail:(TIMPushFailedCallback) failedCallback;
注册推送服务,请正确传递 sdkAppId 和 appKey 两个参数,即可注册推送服务。
参数说明:
参数 | 描述 | 获取路径 |
sdkAppId | IM 控制台为您分配的应用 ID。 | |
appKey | IM 控制台为您分配的客户端密钥。 | |
代码示例:
const int sdkAppId = 您的 sdkAppId;static const NSString *appKey = @"客户端密钥";[TIMPushManager registerPush:sdkAppId appKey:appKey succ:^(NSData * _Nonnull deviceToken) {//} fail:^(int code, NSString * _Nonnull desc) {//error}];
+ (void)unRegisterPush:(TIMPushCallback) successCallback fail:(TIMPushFailedCallback) failedCallback;
反注册关闭推送服务
代码示例:
[TIMPushManager unRegisterPush:^{//success} fail:^(int code, NSString * _Nonnull desc) {//error}];
+ (void)setRegistrationID:(NSString *)registrationID callback: (TIMPushCallback) callback;
设置注册推送服务使用的推送 ID 标识, 即 RegistrationID,需要在注册推送服务之前调用。
参数说明:
参数 | 描述 |
registrationID | 设备的推送标识 ID,卸载重装会改变。 |
+ (void)getRegistrationID:(TIMPushValueCallback) callback;
注册推送服务成功后,获取推送 ID 标识, 即 RegistrationID 。
+ (void)addPushListener:(id<TIMPushListener>)listener
添加 Push 监听器。
+ (void)removePushListener:(id<TIMPushListener>)listener
移除 Push 监听器。
+ (void)disablePostNotificationInForeground:(BOOL)disable;
关闭 App 在前台时弹出通知栏。推送 SDK 收到在线推送时,会自动向通知栏增加 Notification 提示,如果您想自己处理在线推送消息,可以调用该接口关闭自动弹通知栏提示的特性。
参数说明:
参数 | 描述 |
disable | true:关闭 false:开启 |
+ (void)handleNotificationServiceRequest:(UNNotificationRequest *)request appGroupID:(NSString *)appGroupID callback:(TIMPushNotificationExtensionCallback)callback
统计 TIMPush 的推送抵达率
1. 您需要在 AppDelegate.m 文件中实现 `- applicationGroupID` 方法,返回 App Group ID。
2. 并在 Notification Service Extension 的 '- didReceiveNotificationRequest:withContentHandler:' 方法中调用本函数。
注意:
appGroup 标识当前主 App 和 Extension 之间共享的 App Group,需要在主 App的 Capability 中配置 App Groups 能力。
参数说明:
request | |
appGroupID | appGroup 标识当前主 App和 Extension 之间共享的 App Group,需要在主 App 的 Capability 中配置 App Groups 能力。 |
callback | typedef void(^TIMPushNotificationExtensionCallback)(UNNotificationContent *content) 统计函数 Callback,携带content 信息 |
示例代码:
@implementation NotificationService- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {//appGroup 标识当前主 App 和 Extension 之间共享的 App Group,需要在主 App 的 Capability 中配置 App Groups 能力。//格式为group + [主bundleID]+ key//如group.com.tencent.im.pushkeyNSString * appGroupID = kTIMPushAppGorupKey;__weak typeof(self) weakSelf = self;[TIMPushManager handleNotificationServiceRequest:request appGroupID:appGroupID callback:^(UNNotificationContent *content) {weakSelf.bestAttemptContent = [content mutableCopy];// Modify the notification content here...// self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]", self.bestAttemptContent.title];weakSelf.contentHandler(weakSelf.bestAttemptContent);}];}@end
TIMPush - TIMPushListener
@protocol TIMPushListener <NSObject> :Push 监听器协议
接口概览
API | 描述 |
onRecvPushMessage | 收到 Push 消息 |
onRevokePushMessage | 收到 Push 消息撤回的通知 |
接口详情
成员函数说明
- (void)onRecvPushMessage:(TIMPushMessage *)message;
收到 Push 消息,message 消息。
- (void)onRevokePushMessage:(NSString *)messageID;
收到 Push 消息撤回的通知,messageID 消息唯一标识。