Flutter

TencentCloudChatPush

class TencentCloudChatPush:推送插件接口类。

接口概览

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

初始化并成功登录 IM 后,可以注册推送服务。
API
描述
registerOnNotificationClickedEvent
提前注册消息点击回调。
registerPush
注册推送服务,可选覆盖推送信息来自接口参数 json。
unRegisterPush
反注册离线推送服务,IM 账号登出时调用。

FCM 自定义铃音配置接口

配置打开后,自定义铃音生效,发送方发送消息的离线信息中需要带上该 channelId。
API
描述
configFCMPrivateRing
配置 FCM 的自定义铃音,需要在注册推送服务之前调用。

推送通道特殊配置接口

API
描述
setPushBrandId
指定设备离线推送使用的厂商通道类型,需要在注册推送服务之前调用。
getPushBrandId
获取设备离线推送正在使用的厂商通道类型。
checkPushStatus
各个厂商接入配置完成后,可使用该接口在对应厂商设备上测试可 push 状态。
setApnsCertificateID
单独配置 APNs 的推送证书 ID。
setApplicationGroupID
配置 iOS 项目的 Application Group ID。
getAndroidPushToken
获取 Android 设备厂商 Token。
setAndroidPushToken
手动指定 Android 设备厂商 Token。
setAndroidCustomTIMPushConfigs
自定义替换插件默认读取的注册推送配置文件 timpush-configs.json,需要在注册推送服务之前调用。

接口详情

推送插件类

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 账号登录成功后调用。
示例代码:
TencentCloudChatPush().registerPush( onNotificationClicked: _onNotificationClicked, androidPushOEMConfig: "可留空 null", apnsCertificateID: 0, );
参数说明:
参数
类型
说明
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 空。

androidPushOEMConfig
String
如果已配置导入 timpush-configs.json 配置文件,则此项留空即可。此项的意义是覆盖 json 文件中的参数,或在找不到 json 文件时使用 可选 Android 端参数 json:
androidPushOEMConfig: { // huawei "huaweiPushBussinessId": "", // 在腾讯云控制台上传第三方推送证书后分配的证书ID "huaweiBadgeClassName": "", // 角标参数,默认为应用的 launcher 界面的类名 // xiaomi "xiaomiPushBussinessId": "",// 在腾讯云控制台上传第三方推送证书后分配的证书ID "xiaomiPushAppId": "",// 小米开放平台分配的应用APPID "xiaomiPushAppKey": "",// 小米开放平台分配的应用APPKEY // meizu "meizuPushBussinessId": "", // 在腾讯云控制台上传第三方推送证书后分配的证书ID "meizuPushAppId": "",// 魅族开放平台分配的应用APPID "meizuPushAppKey": "",// 魅族开放平台分配的应用APPKEY // vivo "vivoPushBussinessId": "", // 在腾讯云控制台上传第三方推送证书后分配的证书ID // google "fcmPushBussinessId": "", // 在腾讯云控制台上传第三方推送证书后分配的证书ID // oppo "oppoPushBussinessId": "", // 在腾讯云控制台上传第三方推送证书后分配的证书ID "oppoPushAppKey": "",// oppo开放平台分配的应用 AppKey "oppoPushAppSecret": "",// oppo开放平台分配的应用 AppSecret // honor "honorPushBussinessId": "", // 在腾讯云控制台上传第三方推送证书后分配的证书ID }
apnsCertificateID
int
如单独调用 setApnsCertificateID 方法已配置, 此项可不传。

unRegisterPush

反注册离线推送服务,IM 账号登出后调用。
示例代码:
TencentCloudChatPush().unRegisterPush();

configFCMPrivateRing

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

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>>

checkPushStatus

各个厂商接入配置完成后,可使用该接口在对应厂商设备上测试是否可接收推送。
示例代码:
final res = await TencentCloudChatPush().checkPushStatus(brandID: 2002); if(res.code == 0){ final status = res.data; }
参数说明:
参数名
类型
说明
brandID
TencentCloudChatPushBrandID
BrandID 定义如上表所示。
返回类型:
Future<TencentCloudChatPushResult<String>>
若为true, 则可以成功推送。

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。

setAndroidCustomTIMPushConfigs

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