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:
|
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 |
返回类型:
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/"。 |