iOS

最近更新时间:2024-10-10 11:15:51

我的收藏

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.pushkey
NSString * 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 消息唯一标识。