注意:说明:
一、前置准备(控制台)
跑通 Demo 前,请先在腾讯云控制台完成账号与厂商通道准备:
1. 创建应用:登录 即时通信 IM 控制台,在应用列表单击创建应用接入,记录生成的 SDKAppID。
2. 获取密钥:进入目标应用的应用配置,单击查看密钥,拷贝并妥善保管 SDKAppID 与客户端密钥 AppKey。
注意:推送服务的客户端密钥与 Chat 的密钥不同,请勿混用。密钥属于敏感信息,请勿提交到代码仓库。
3. 开通推送并配置厂商通道:在控制台推送服务页开通推送能力,按需配置 Android 厂商通道(小米 / 华为 / 荣耀 / OPPO / vivo / 魅族 / FCM)与 iOS APNs 通道,下载 timpush-configs.json 及各厂商服务配置文件,并记录 APNs 证书 ID。鸿蒙端请另行完成 鸿蒙厂商配置。
二、环境要求
| 项目 | 要求 |
| HBuilderX | 推荐 4.36 ~ 4.63 或 4.66 及以上(4.64 / 4.65 存在已知问题,请避开) |
| 推送插件 | TencentCloud-Push >= 1.1.0(已置于 uni_modules/;鸿蒙推送需 >= 1.3.0) |
| 测试设备 | Android 或 iOS 真机,且必须使用自定义调试基座(标准基座不包含厂商推送通道,无法验证离线推送) |
三、步骤 1:确认推送插件
TencentCloud-Push 原生插件已位于 uni_modules/ 目录。如需更新,请从 uni-app 插件市场 – 腾讯云推送服务(Push) 下载并导入 HBuilderX。
四、步骤 2:填写基础凭证
打开 App.vue,将 registerPush 中的占位符替换为实际值:
// 将 0 改为你的 SDKAppID,'' 改为你的 AppKeyregisterPush(0, '', (data) => { /* … */ });
如需与 Chat 登录 userID 打通(即向该 userID 推送消息),请在 registerPush 之前调用 setRegistrationID(userID),且 userID 必须与 Chat 登录使用的 userID 完全一致。
五、步骤 3:放置离线推送配置文件
配置文件统一放在与 uni_modules 平级的 nativeResources/ 目录下(不存在请手动新建):
| 平台 | 配置文件 | 放置路径 |
| Android 通用 | timpush-configs.json | nativeResources/android/assets/ |
| Android 华为 | agconnect-services.json | nativeResources/android/assets/ |
| Android FCM | google-services.json | nativeResources/android/(不要放入 assets) |
| Android 荣耀 | mcs-services.json | nativeResources/android/(不要放入 assets) |
| Android 荣耀 / vivo | HONOR_APPID / VIVO_APPKEY / VIVO_APPID | nativeResources/android/manifestPlaceholders.json |
| iOS | timpush-configs.json(内容为 {"businessID":"你的证书 ID"}) | nativeResources/ios/Resources/ |
对于荣耀 / vivo / FCM,还需编辑 uni_modules/TencentCloud-Push/utssdk/app-android/config.json,在 dependencies / plugins 中补充对应厂商依赖(FCM 需添加 com.google.gms.google-services 插件),详见 uni-app SDK 接入。
六、步骤 4:制作自定义调试基座并运行
1. 在 HBuilderX 中单击运行 > 运行到手机或模拟器 > 制作自定义调试基座,使用云端证书分别制作 Android / iOS 自定义调试基座(鸿蒙端无需自定义基座)。
2. 基座制作完成后,运行到真机。
3. 注册成功后,将 App 切至后台,通过控制台推送服务 Push > 接入测试发送一条测试推送,设备收到推送即代表全流程跑通。
七、注意事项
·隐私合规:请在 App 启动且用户同意隐私政策后调用 registerPush。
·调用顺序:setRegistrationID 必须在 registerPush 之前调用才会生效;混用场景下其值须与 Chat 登录 userID 完全一致,否则会产生账号互踢导致推送丢失。
·事件监听:Demo 通过 addPushListener 监听 EVENT.NOTIFICATION_CLICKED(通知点击)/ EVENT.MESSAGE_RECEIVED(在线推送)/ EVENT.MESSAGE_REVOKED(消息撤回),可参考 App.vue。
·基座要求:离线推送在标准基座下不可用;每次修改 nativeResources/ 或插件配置后,需重新制作自定义基座。
八、常见问题
·标准基座上收不到推送:标准基座不包含厂商推送通道,请改用自定义调试基座运行。
·自定义基座启动崩溃:检查 config.json 中厂商依赖 / 插件配置是否正确、nativeResources/ 配置文件是否放在正确路径。
·收不到推送:确认已使用云端证书制作自定义基座;确认 timpush-configs.json 与厂商配置文件路径正确;使用控制台推送排查工具输入 RegistrationID 自查,并按 错误码 查询失败回调含义。
九、相关文档
·uni-app SDK 接入
·厂商配置索引
·推送排查工具