Flutter

最近更新时间:2024-09-24 14:47:21

我的收藏

TencentCloudChatPush

class TencentCloudChatPush:推送插件接口类。

接口概览

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

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

FCM 自定义铃音配置接口

配置打开后,自定义铃音生效,发送方发送消息的离线信息中需要带上该 channelId。
API
描述
配置 FCM 的自定义铃音,需要在注册推送服务之前调用。
自定义替换插件默认读取的注册推送配置文件 timpush-configs.json,需要在注册推送服务之前调用。

推送通道特殊配置接口

API
描述
指定设备离线推送使用的厂商通道类型,需要在注册推送服务之前调用。
获取设备离线推送正在使用的厂商通道类型。
单独配置 APNs 的推送证书 ID。
配置 iOS 项目的 Application Group ID。
获取 Android 设备厂商 Token。
手动指定 Android 设备厂商 Token。

接口详情

推送插件类

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

成员函数说明

registerOnNotificationClickedEvent

配置消息点击回调函数。
您可根据需要,提前调用或动态调整该回调函数, 也可以在 registerPush 的时候直接传入。
示例代码:
void _onNotificationClicked({required String ext, String? userID, String? groupID}) { print("_onNotificationClicked: $ext, userID: $userID, groupID: $groupID"); /// 自定义处理 } TencentCloudChatPush().registerOnNotificationClickedEvent(onNotificationClicked: _onNotificationClicked);
参数说明:
参数
类型
说明
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 空。


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: "客户端密钥");
参数说明:
参数
类型
说明

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();

enableBackupChannels

打开本机通道失败后,探测其他可用通道策略,需要在注册推送服务之前调用。
示例代码:
TencentCloudChatPush().enableBackupChannels();

setRegistrationID

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

getRegistrationID

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

setCustomFCMRing

配置 FCM 的自定义铃音,需要在注册推送服务之前调用。
示例代码:
TencentCloudChatPush().setCustomFCMRing(channelId: channelId, ringName: ringName, enable: enable);
参数说明:
参数名
类型
说明
channelId
String
FCM 通道自定义通知栏的 channel ID,应用内唯一。
ringName
String
FCM 通道自定义通知栏的推送铃音名称,raw 目录下铃音且不需要后缀名。
enable
bool
设置离线推送提示铃音是否使用自定义铃音。
注意:
配置打开后,自定义铃音生效,发送方发送消息的离线信息中需要带上该 channelId。

setAndroidCustomConfigFile

自定义替换插件默认读取的注册推送配置文件 timpush-configs.json,需要在注册推送服务 (registerPush) 之前调用。
说明:
主要用于多环境下动态切换不同配置文件的推送注册,例如:正式环境和测试环境不同配置文件下的推送功能集成和测试。
示例代码:
TencentCloudChatPush().setAndroidCustomConfigFile(configs: "");
参数说明:
参数名
类型
说明
configs
String
自定义配置文件的名称,路径需保持不变:"工程根目录/android/app/src/assets/"。

setPushBrandId

指定设备离线推送使用的厂商通道类型,需要在注册推送服务之前调用。
说明:
该接口可以指定使用厂商推送通道类型,例如在国外的小米设备指定使用 FCM 通道推送 setPushBrandId(TencentCloudChatPushBrandID.FCM)。
一般不指定通道类型,组件会自动识别设备厂商类别来注册使用对应的厂商通道。
示例代码:
TencentCloudChatPush().setPushBrandId(brandID: brandID);

参数说明
参数
描述
brandID
厂商
设备类型
XiaoMi
TencentCloudChatPushBrandID.XiaoMi
HuaWei
TencentCloudChatPushBrandID.HuaWei
FCM
TencentCloudChatPushBrandID.FCM
Meizu
TencentCloudChatPushBrandID.Meizu
Oppo
TencentCloudChatPushBrandID.Oppo
Vivo
TencentCloudChatPushBrandID.Vivo
Honor
TencentCloudChatPushBrandID.Honor

getPushBrandId

获取设备离线推送正在使用的厂商通道类型。
示例代码:
final res = await TencentCloudChatPush().getPushBrandId(); if(res.code == 0){ final TencentCloudChatPushBrandID brandID = res.data; }
返回类型:
Future<TencentCloudChatPushResult<TencentCloudChatPushBrandID>>

setApnsCertificateID

单独配置 APNs 的推送证书 ID。 您可根据需要, 提前调用或动态调整证书 ID 用此方法, 也可以在 registerPush 的时候直接传入。
示例代码:
TencentCloudChatPush().setApnsCertificateID(apnsCertificateID: 0);
参数说明:
参数名
类型
说明
apnsCertificateID
int
腾讯云 IM 控制台上为 APNs 证书分配到的证书 ID。

setApplicationGroupID

配置 iOS 项目的 Application Group ID。
示例代码:
TencentCloudChatPush().setApplicationGroupID(applicationGroupID: "");
参数说明:
参数名
类型
说明
applicationGroupID
String
格式为: group + [主bundleID] + key。

getAndroidPushToken

获取 Android 设备厂商 Token。
示例代码:
TencentCloudChatPush().getAndroidPushToken();
返回类型:
Future<TencentCloudChatPushResult<String>>
返回的 String 类型 data 即为厂商推送 Token。

setAndroidPushToken

手动指定 Android 设备厂商 Token。
示例代码:
TencentCloudChatPush().setAndroidPushToken(businessID: 10000, pushToken: "pushToken");
参数说明:
参数名
类型
说明
businessID
String
推送证书 ID,从腾讯云IM控制台, 该推送证书卡片查看获取。
pushToken
String
通过自己的方式,获取到的厂商推送 Token。