TIMPushManager、TIMPushListener、TIMPushDelegate、TIMPushMessage、回调类型和错误码。TIMPushManager 是 TIMPush iOS SDK 的推送服务管理类,用于注册推送服务、管理 RegistrationID、配置前台通知展示、添加监听器,以及在 Notification Service Extension 中统计推送抵达。API | 说明 |
注册推送服务。 | |
反注册推送服务。 | |
获取当前推送注册标识。 | |
设置自定义推送注册标识。 | |
设置 App 前台收到推送时是否展示通知。 | |
添加 Push 监听器。 | |
移除 Push 监听器。 | |
在 Notification Service Extension 中处理推送请求,用于统计推送抵达。 |
TIMPushListener 是 Push 事件监听协议。实现该协议后,可以接收推送消息、推送撤回和通知点击事件。协议未标注 @optional,实现时需同时实现全部三个方法。API | 说明 |
收到 Push 消息。 | |
收到 Push 消息撤回通知。 | |
收到通知栏消息点击回调。 |
TIMPushDelegate 是离线推送证书配置与点击事件处理协议。该协议继承自 UIApplicationDelegate,所有方法均为可选方法。API | 说明 |
返回离线推送证书 ID。 | |
返回主 App 与 Notification Service Extension 共享的 App Group ID。 | |
自定义处理收到的远程推送。 | |
处理通知点击后的页面跳转。 |
typedef void(^TIMPushCallback)(void);
typedef void(^TIMPushValueCallback)(NSString *value);
参数 | 类型 | 说明 |
value | NSString * | 回调返回的字符串值。 |
typedef void(^TIMPushSuccessCallback)(NSData *deviceToken);
参数 | 类型 | 说明 |
deviceToken | NSData * | APNs 返回的设备令牌。 |
typedef void(^TIMPushFailedCallback)(int code, NSString *desc);
参数 | 类型 | 说明 |
code | int | 错误码。 |
desc | NSString * | 错误描述。 |
typedef void(^TIMPushCallExperimentalAPISucc)(NSObject *object);
参数 | 类型 | 说明 |
object | NSObject * | 实验性 API 返回的数据对象。具体类型由 API 定义决定。 |
typedef void(^TIMPushNotificationExtensionCallback)(UNNotificationContent *content);
参数 | 类型 | 说明 |
content | UNNotificationContent * | 处理后的通知内容。 |
+ (void)registerPush:(int)sdkAppIdappKey:(NSString *)appKeysucc:(TIMPushSuccessCallback)successCallbackfail:(TIMPushFailedCallback)failedCallback;
参数 | 类型 | 说明 |
sdkAppId | int | Push 应用的 SDKAppID。 |
appKey | NSString * | Push 应用的客户端密钥。 |
successCallback | TIMPushSuccessCallback | 注册成功回调。回调携带 APNs 返回的 deviceToken。 |
failedCallback | TIMPushFailedCallback | 注册失败回调。回调携带错误码和错误描述。 |
sdkAppId 和 appKey 两个参数,即可注册推送服务。appKey 参数设置为 nil,接入离线推送能力。+ (void)unRegisterPush:(TIMPushCallback)successCallbackfail:(TIMPushFailedCallback)failedCallback;
参数 | 类型 | 说明 |
successCallback | TIMPushCallback | 反注册成功回调。 |
failedCallback | TIMPushFailedCallback | 反注册失败回调。回调携带错误码和错误描述。 |
TUILogin 提供的 login 和 logout 能力,无需额外调用该接口。+ (void)getRegistrationID:(TIMPushValueCallback)callback;
参数 | 类型 | 说明 |
callback | TIMPushValueCallback | 获取成功回调。回调返回当前推送标识。 |
registrationID(设备标识),卸载重装后可能变化。userID。registerPush:appKey:succ:fail: 成功回调之后再调用本接口,否则可能拿不到值。控制台或服务端发送测试消息时,使用该返回值定位设备或用户。+ (void)setRegistrationID:(NSString *)registrationIDcallback:(TIMPushCallback)callback;
参数 | 类型 | 说明 |
registrationID | NSString * | 自定义推送注册标识。 |
callback | TIMPushCallback | 设置完成回调。 |
RegistrationID 向指定设备推送消息,请在调用 registerPush:appKey:succ:fail: 之前调用该接口。+ (void)disablePostNotificationInForeground:(BOOL)disable;
参数 | 类型 | 说明 |
disable | BOOL | YES 表示关闭前台通知展示;NO 表示开启前台通知展示。 |
YES。disablePostNotificationInForeground(disable:)
+ (void)addPushListener:(id<TIMPushListener>)listener;
参数 | 类型 | 说明 |
listener | id<TIMPushListener> | Push 监听器对象。 |
TIMPushListener 回调 Push 消息、撤回通知和通知点击事件。addPushListener(listener:)
+ (void)removePushListener:(id<TIMPushListener>)listener;
参数 | 类型 | 说明 |
listener | id<TIMPushListener> | 需要移除的 Push 监听器对象。 |
removePushListener(listener:)
+ (void)handleNotificationServiceRequest:(UNNotificationRequest *)requestappGroupID:(NSString *)appGroupIDcallback:(TIMPushNotificationExtensionCallback)callback;
参数 | 类型 | 说明 |
request | UNNotificationRequest * | UNNotificationServiceExtension 接收到的通知请求。 |
appGroupID | NSString * | 主 App 与 Notification Service Extension 共享的 App Group ID。 |
callback | TIMPushNotificationExtensionCallback | 处理完成回调。回调携带处理后的通知内容。 |
didReceiveNotificationRequest:withContentHandler: 方法中调用。TIMPushDelegate 的 applicationGroupID 方法,返回 App Group ID。handleNotificationServiceRequest(request:appGroupID:callback:)
TIMPushListener 协议未标注 @optional,实现该协议时需同时实现 onRecvPushMessage:、onRevokePushMessage: 和 onNotificationClicked: 三个方法。回调 | 触发时机 |
onRecvPushMessage: | App 在线时,收到带 offlinePushInfo 的 Chat 消息时触发。 |
onRevokePushMessage: | App 在线时,收到消息撤回通知时触发。 |
onNotificationClicked: | 用户点击通知栏消息时触发。包含 App 离线时由 APNs / Notification Service Extension 下发、点击后拉起 App 的场景。 |
offlinePushInfo 的 Chat 消息时触发。App 进程已退出时本回调不会触发。- (void)onRecvPushMessage:(TIMPushMessage *)message;
参数 | 类型 | 说明 |
message | TIMPushMessage * | Push 消息对象。 |
- (void)onRevokePushMessage:(NSString *)messageID;
参数 | 类型 | 说明 |
messageID | NSString * | 被撤回消息的唯一标识。 |
- (void)onNotificationClicked:(NSString *)ext;
参数 | 类型 | 说明 |
ext | NSString * | 离线消息透传字段。 |
TIMPushDelegate 用于配置离线推送证书,以及接管远程推送和通知点击后的跳转处理。该协议继承自 UIApplicationDelegate,所有方法均为可选方法。- (int)businessID;
- (NSString *)applicationGroupID;
handleNotificationServiceRequest:appGroupID:callback: 传入的 appGroupID 保持一致。- (BOOL)onRemoteNotificationReceived:(nullable NSString *)notice;
参数 | 类型 | 说明 |
notice | NSString * _Nullable | 远程推送通知内容。 |
YES 表示业务已自行处理该推送,TIMPush 不再执行内置的 TUIKit 离线推送解析逻辑。NO 表示 TIMPush 继续执行内置的 TUIKit 离线推送解析逻辑,并继续回调 navigateToBuiltInChatViewController:groupID:。- (void)navigateToBuiltInChatViewController:(nullable NSString *)userIDgroupID:(nullable NSString *)groupID;
参数 | 类型 | 说明 |
userID | NSString * _Nullable | 单聊用户 ID。 |
groupID | NSString * _Nullable | 群聊 ID。 |
userID 和 groupID。如果 groupID 不为空,表示当前点击的是群聊离线消息;如果 groupID 为空且 userID 不为空,表示当前点击的是单聊离线消息。navigateToBuiltInChatViewController(userID:groupID:)
TIMPushMessage 表示 Push 消息对象。属性 | 类型 | 说明 |
title | NSString * | 离线推送标题。 |
desc | NSString * | 离线推送内容。 |
ext | NSString * | 离线推送透传内容。 |
messageID | NSString * | 消息唯一标识 ID。 |
TIMPushErrorCode 定义 TIMPush SDK 的业务错误码。错误码 | 枚举值 | 说明 |
TIMPushErrorUndefinedCode | -1 | 未知错误。 |
TIMPushErrorNotLogined | 800001 | 注册 Push 前未登录 Chat 账号。 |
TIMPushErrorInvalidSdkAppId | 800002 | 注册 Push 参数 sdkAppId 不合法。 |
TIMPushErrorRegisterPushInitFailed | 800003 | 初始化 SDK 失败。 |
TIMPushErrorCallExperimentalApiFailed | 800015 | 实验性 API 调用失败。 |
TIMPushErrorNotificationAuthorizationDenied | 800016 | 用户拒绝通知授权。 |
TIMPushErrorHttpsRequestFailed | 800017 | HTTPS 请求失败。 |
文档反馈