Flutter

TencentCloudChatPush

class TencentCloudChatPush:推送插件接口类。

接口概览

注册/反注册推送服务接口

API
描述
注册推送服务,可选覆盖推送信息来自接口参数 json。
反注册推送服务。
RegistrationID 是推送接收设备的唯一标识 ID。默认情况下,注册推送服务成功时自动生成该 ID,同时也支持您自定义设置。您可根据 RegistrationID 向指定设备推送消息。需要注意的是,卸载并重新安装设备会更改 RegistrationID,因此需要在注册推送服务之前调用 setRegistrationID 接口。
在成功注册推送服务后,可通过调用 getRegistrationID 接口获取推送接收设备的唯一标识 ID,即RegistrationID。您可根据 RegistrationID 向指定设备推送消息。

Push 全局监听接口

API
描述
添加 Push 监听器。
移除 Push 监听器。

自定义配置接口接口

API
描述
指定设备离线推送使用 FCM 通道,需要在注册推送服务之前调用。
关闭 App 在前台时弹出通知栏。

接口详情

推送插件类

TencentCloudChatPush():获取 TencentCloudChatPush 推送插件实例,是一个静态单例。后续步骤, 均通过此单例实例, 进行方法调用。

成员函数说明

registerPush

注册推送服务,IM 账号登录成功后调用。
示例代码:
void _onNotificationClicked({required String ext, String? userID, String? groupID}) {
print("_onNotificationClicked: $ext, userID: $userID, groupID: $groupID");
/// 自定义处理
}
TencentCloudChatPush().registerPush(
onNotificationClicked: _onNotificationClicked,
sdkAppId: 您的sdkAppId,
appKey: "客户端密钥"
apnsCertificateID: 您配置的证书 ID);
参数说明:
参数
类型
说明

onNotificationClicked
ext
String
为该消息所携带的完整 ext 信息,由发送方指定, 如果未指定,则有默认值。您可根据解析该字段,跳转至对应页面。
userID
String?
本参数对应 userID,自动尝试解析 ext Json String, 获取里面携带的单聊对方 userID 。
说明:
如果您未自定义 ext 字段,ext 字段由 SDK 或 UIKit 默认指定,则可使用此处的默认解析。如果尝试解析失败,则为 null 空。
groupID
String?
本参数对应 groupID,自动尝试解析 ext Json String, 获取里面携带的群聊 groupID 信息。
说明:
如果您未自定义 ext 字段,ext 字段由 SDK 或 UIKit 默认指定,则可使用此处的默认解析。如果尝试解析失败,则为 null 空。
sdkAppId
int?
IM 控制台为您分配的应用 ID



appKey
String?
IM 控制台为您分配的客户端密钥
apnsCertificateID
int?
如单独调用 setApnsCertificateID 方法已配置, 此项可不传。

unRegisterPush

反注册离线推送服务。
示例代码:
TencentCloudChatPush().unRegisterPush();

setRegistrationID

设置注册离线推送服务使用的推送 ID 标识, 即 RegistrationID,需要在注册推送服务之前调用。
参数说明:
参数
描述
registrationID
设备的推送标识 ID,卸载重装会改变。
示例代码:
TencentCloudChatPush().setRegistrationID(registrationID: registrationID);

getRegistrationID

注册离线推送服务成功后,获取推送 ID 标识,即 RegistrationID。
示例代码:
TencentCloudChatPush().getRegistrationID();

addPushListener

添加 Push 监听器
示例代码:
TIMPushListener timPushListener = TIMPushListener(
onRecvPushMessage: (TimPushMessage message) {
String messageLog = message.toLogString();
debugPrint(
"message: $messageLog");
},

onRevokePushMessage: (String messageId) {
debugPrint(
"message: $messageId");
},

onNotificationClicked: (String ext) {
debugPrint(
"ext: $ext");
}
);
TencentCloudChatPush.addPushListener(listener: timPushListener);

removePushListener

移除 Push 监听器
示例代码:
TIMPushListener timPushListener = TIMPushListener(
onRecvPushMessage: (TimPushMessage message) {
String messageLog = message.toLogString();
debugPrint(
"message: $messageLog");
},

onRevokePushMessage: (String messageId) {
debugPrint(
"message: $messageId");
},

onNotificationClicked: (String ext) {
debugPrint(
"ext: $ext");
}
);
TencentCloudChatPush.removePushListener(listener: timPushListener);

forceUseFCMPushChannel

指定设备离线推送使用 FCM 通道,需要在注册推送服务之前调用。
参数说明:
参数
描述
enable
true:使用 FCM 通道。
false:使用本机通道。
示例代码:
TencentCloudChatPush.forceUseFCMPushChannel(enable: true);

disablePostNotificationInForeground

关闭 App 在前台时弹出通知栏。推送 SDK 收到在线推送时,会自动向通知栏增加 Notification 提示,如果您想自己处理在线推送消息,可以调用该接口关闭自动弹通知栏提示的特性。
参数说明:
参数
描述
disable
true:关闭
false:开启
示例代码:
TencentCloudChatPush.disablePostNotificationInForeground(disable: true);