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