前置条件
1. 厂商配置
说明:
2. HBuilderX 版本 ≥ 4.24(HbuilderX 4.29 有 bug,云打包构建自定义基座会失败,请使用 HbuilderX 4.24,点击下载)
集成 TencentCloud-Push
步骤1:下载插件并导入 HbuilderX
1. 打开 uni-app 腾讯云推送服务(Push) ,单击下载插件并导入HbuilderX,将插件导入 HbuilderX 工程中。
2. 选择需要集成的工程并单击确定。
3. 集成后效果如下图所示:
步骤2:离线推送配置
说明:
您需在
nativeResources
目录下进行推送配置。若项目根目录尚未创建该文件夹,请新建一个名为 nativeResources
的文件夹。1. 新建 nativeResources/android/assets 目录。
2. 配置
timpush-configs.json
(在 推送服务 Push > 接入设置 > 一键式快速配置 下载),到 nativeResources/android/assets/ 目录下。如图所示:
3. 华为、荣耀、vivo、FCM。
您需要支持华为推送时,需要配置
agconnect-services.json
(此文件获取详见 厂商配置 > uniapp > 华为 > 步骤4:获取应用信息)到 nativeResources/android/assets/ 目录下。如图所示:
您需要支持荣耀推送时,需要配置
appID
到 uni_modules/TencentCloud-Push/utssdk/app-android/AndroidManifest.xml 文件中。如图所示:
您需要支持 vivo 推送时,需要配置
appID
和 appKey
到 uni_modules/TencentCloud-Push/app-android/AndroidManifest.xml 文件中。如图所示:
您需要支持 FCM 推送时,需要配置 google services。
1. 配置
com.google.gms.google-services
到 uni_modules/TencentCloud-Push/app-android/config.json 的 project.plugin
中,如下所示:"project": {"plugins": [..."com.google.gms.google-services"],"dependencies": ["com.huawei.agconnect:agcp:1.9.1.301","com.google.gms:google-services:4.3.15","com.hihonor.mcs:asplugin:2.0.1.300"]}
2. 配置
google-services.json
文件到 nativeResources/android/ 目录下。如图所示:
1. 新建 nativeResources/ios/Resources 目录;
2. 在 nativeResources/ios/Resources 中新建 timpush-configs.json 文件;
3. 并将在 IM控制台 > 推送服务 Push > 接入设置 获取的证书ID,补充到 timpush-configs.json 文件中。如下所示:
{"businessID":"xxx"}
步骤3:引入并注册腾讯云推送服务(Push)
// 集成 TencentCloud-Pushimport * as Push from '@/uni_modules/TencentCloud-Push';const SDKAppID = 0; // 您的 SDKAppIDconst appKey = ''; // 客户端密钥Push.registerPush(SDKAppID, appKey, (data) => {console.log('registerPush ok', data);Push.getRegistrationID((registrationID) => {console.log('getRegistrationID ok', registrationID);});}, (errCode, errMsg) => {console.error('registerPush failed', errCode, errMsg);});// 监听在线推送 Push.addPushListener(Push.EVENT.MESSAGE_RECEIVED, (res) => { // res 为消息内容 console.log('message received', res); }); // 监听在线推送被撤回 Push.addPushListener(Push.EVENT.MESSAGE_REVOKED, (res) => { // res 为被撤回的消息 ID console.log('message revoked', res); });
步骤4: 使用云端证书,生成自定义基座
单击 HBuilderX 的运行 > 运行到手机或模拟器 > 制作自定义调试基座,使用云端证书制作 Android 或 iOS 自定义调试基座。
步骤5. 体验您的第一次推送
更多高级特性(强烈推荐)
1. 获取离线推送扩展信息
export default {onLaunch: function() {},onShow: function() {console.log('App Show')Push.getNotificationExtInfo((extInfo) => {console.log('getNotificationExtInfo ok', extInfo);})},onHide: function() {console.log('App Hide')}}
2. 推送结果回调
开启推送服务后,推送结果可以通过配置基础回调的方式,将结果转发给 App 后台,详见:
普通推送结果回调
全员推送结果回调
设备通知栏设置
推送的直观表现就是通知栏提示,所以同其他通知一样受设备通知相关设置的影响,以华为为例:
“手机设置-通知-锁屏通知-隐藏或者不显示通知”,会影响锁屏状态下推送通知显示。
“手机设置-通知-更多通知设置-状态栏显示通知图标”,会影响状态栏下推送通知的图标显示。
“手机设置-通知-应用的通知管理-允许通知”,打开关闭会直接影响推送通知显示。
“手机设置-通知-应用的通知管理-通知铃声” 和 “手机设置-通知-应用的通知管理-静默通知”,会影响推送通知铃音的效果。
厂商推送限制
1. 国内厂商都有消息分类机制,不同类型也会有不同的推送策略。如果想要推送及时可靠,需要按照厂商规则设置自己应用的推送类型为高优先级的系统消息类型或者重要消息类型。反之,推送消息会受厂商推送消息分类影响,与预期会有差异。
2. 另外,一些厂商对于应用每天的推送数量也是有限制的,可以在厂商控制台查看应用每日限制的推送数量。 如果推送消息出现推送不及时或者偶尔收不到情况,需要考虑下这里:
将推送消息分为服务与通讯类和资讯营销类,推送效果和策略不同。另外,消息分类还和自分类权益有关:
无自分类权益,推送消息厂商还会进行二次智能分类 。
有申请自分类权益,消息分类会按照自定义的分类进行推送。 具体请参见 厂商描述。
技术咨询