unipush2.0实现离线推送(华为手机)

最近在做app消息推送,记录下离线推送接入过程中遇到的问题。详细步骤请参考官网文档:uni-push 2.0 快速接入指南

问题一、查询不到 device token

文档原文中:

1.4.2 校验厂商离线推送是否集成成功
输入上方获取的 cid ,查询到对应的 Device Token 则说明云打包 “离线推送” 成功,同时支持离线推送。
如果未查询到 device token,则只能 “在线推送” 。若需要使用 “离线推送” 请重新检查 ”1.2 开通离线厂商推送服务“ 。

1、应用中使用的厂商是华为,此时登录华为开发者平台,检查对应厂商平台上的推送服务状态是否是开启状态。
2、在Dcloud后台【Uni Push】-【厂商推送设置】中保存好厂商参数,并用自有证书提交云打包,且需要打正式包,再获取cid去查询是否有返回。
3、如果还是获取不到,可以使用adb安卓调试工具获取具体的错误码。调试环境配置请参考安装教程
4、手机连接电脑,手机需开启开发者调试模式,此时先不打开app
5、Windows执行示例:如下图,回车执行后打开app

### 配置 unipush2 荣耀离线推送 options 参数 在配置 unipush2 的荣耀离线推送 `options` 参数时,需特别关注以下几个方面: #### 1. 厂家消息分类标识 对于离线推送功能,必须正确配置厂家的消息分类标识。这一步骤至关重要,因为不同的设备厂商可能有不同的消息类别定义方式。根据已有信息,`options` 参数中的消息分类标识应针对每个具体的厂商进行适配[^2]。 ```javascript const options = { category: 'your_category_identifier', // 替换为荣耀对应的分类标识符 }; ``` 此处的 `category` 字段需要替换为荣耀设备所支持的具体分类标识符。通常情况下,该字段可以通过查阅华为或荣耀的相关官方文档获取[^3]。 #### 2. JSON 格式解析 当通过 uniPush 服务端 API 发送请求时,务必确保传递的数据是以标准的 JSON 字符串形式存在。如果未按照此格式处理数据,则可能导致接口调用失败。 以下是构建并发送 JSON 数据的一个示例代码片段: ```javascript // 构建JSON对象 let jsonData = { appKey: "your_app_key", // 应用唯一标识 masterSecret: "your_master_secret", // 主密钥 target: ["device_token_1"], // 推送目标列表 notification: { // 通知详情 title: "测试标题", content: "这是测试内容" }, options: { category: "honor_offline_push" // 设置荣耀离线推送分类 } }; // 将JavaScript对象转换成JSON字符串 let jsonString = JSON.stringify(jsonData); console.log(jsonString); // 输出最终结果供调试使用 ``` 上述代码展示了如何将 JavaScript 对象序列化为 JSON 字符串的过程,这对于满足 uniPush 后台的服务需求非常重要。 #### 3. 特殊注意事项 尽管荣耀设备目前无需像其他品牌一样强制要求上线至特定的应用商店即可完成离线推送配置[^1],但在实际开发过程中仍可能存在一些潜在问题需要注意规避。例如,在同一个云函数内部尝试调用多种不同类型的方法可能会引发冲突;此时可以考虑采用模块化的编程思路来分离逻辑单元。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值