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
在这里插入图片描述
可以看到此时返回的错误码为6003,可以检查对应厂商的华为通用错误码
(其他厂商请自行百度)
若未返回任何带有厂商标识的日志,说明厂商推送服务还未置于您app应用内,请重新检查厂商服务开通、配置、云打包相关步骤。
6、查看华为通用错误码后,发现6003代表应用的证书指纹和华为平台上的配置不一致。可以解压前面打出的自定义调试基座包,注意不是正式包,是自定义调试基座包。
在这里插入图片描述
使用RAR打开apk包
使用RAR打开appk包
找到CERT.RSA文件(如果没有这个文件,说明这个不是自定义调试基座包),用jdk中自带的keytool工具查看应用的证书指纹。
在这里插入图片描述

对比华为平台上的证书指纹,如果确实不一致,则需要修改华为应用配置。
在这里插入图片描述
修改之后过一会就能生效了。此时再尝试用cid去查询。

问题二、获取到device token后,执行云函数还是收不到消息

我遇到这个问题是因为手机没有开启提醒,实际上消息收到了只是没有弹窗,需要下拉通知栏才能看到。

问题三、Java端如何调用unipush的云函数去发送通知

1、云函数调试成功后需要上传部署
在这里插入图片描述
在这里插入图片描述
打开云函数的服务空间,点详情进入编辑和查看url:
在这里插入图片描述
编辑完成后复制路径,使用postman等工具测试:
在这里插入图片描述
参数说明:
push_clientid:在uni-app客户端获取到的客户端推送标识push_clientid,需要群发的话可以传数组
request_id:区分不同的https请求,长度10-30位,主要用来在unipush后台查询云函数的调用情况,我直接用的时间戳
options:各厂商配置的参数
在这里插入图片描述
postman测试通过后就可以在Java里面发送https请求去发送通知了。
注意需要忽略证书的验证,此处就不赘述了可以自行百度。

  • 31
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值