今天终于可以抽出点时间,来记录一下这几天心塞的心情。上周公司派过来一个活,说是使用uniapp制作一个app,同时要实现在线消息推送和离线消息推送,啥话没说就揽了下来。不过说实在的,从来没有开发过app,好歹会点vue。可想而知,接下来的几天总是穿梭于百度搜索、vue官方、uniapp、dcloud等官网,各种资料搜索……最后功能算是做完了,但心情不是很好,踩了好多坑,今天主要记录一下离线消息推送吧,供小伙伴们参考。
项目背景
使用uniapp打包app,与华为厂商对接离线消息推送,本次打包用到的证书主要是在dcloud平台自动生成的,几分钟就可以创建好,如果想要创建自己的Android证书的小伙伴,可以参考一下uniapp官方提供的方法,或者使用Android studio也可以创建证书。
一、dcloud平台应用配置
1、添加应用
这个比较简单,直接贴个图吧。
2、创建证书
点击我的应用中的应用名称,进入配置应用基本信息,创建Android云端证书等,我的已经创建好。
二、华为开放平台配置
1、创建华为开发者账号
发布华为app必需得注册一个开发者账号,这个很简单。
2、创建项目
先创建一个项目,顺便开通一些分析之类的权限什么的。
开通需要的权限,默认都是勾选的。
至此,项目就创还能好了。
3、创建应用
进入项目中,点击添加应用即可进入下面的页面。应用包名需要和dcloud中配置的包名同步。
应用添加成功后,就是下图展示的样子。但是缺少一个sha256证书指纹。
4、添加SHA256证书指纹【必填】
我直接在dcloud云端创建的证书,点击证书详情,从里面找到sha256码复制粘贴到下图处即可。
5、开通推送服务
切换到api管理中开通推送服务。
6、增长栏目中开通推送服务
点击左侧增长栏目中的推送服务,开通推送服务。后期要创建推送通知和测试离线消息使用。
7、配置
下方勾选的选项都需要开通。
三、dcloud平台厂商推送配置
华为端添加证书指纹后需要下载agconnect-services.json文件,将该文件中json数据粘贴到dcloud厂商配置中,见下图。
四、Hbuilderx打包并运行
1、下载证书
在dcloud的应用中下载云端证书,要打包用到。
2、打包自定义基座
打包时必需选择使用自有证书,将上一步下载的证书放在本地指定位置,将路径填写到证书文件处,证书别名和证书私钥密码可以从证书详情中找到。
至此,所有的配置就完成了。
3、运行到自定义基座
需要通过usb将手机和电脑连通。
注意:
手机必需为华为真机;
pc电脑和华为手机都需要安装华为手机助手连通;
华为手机开启usb调试模式;
五、获取device token
华为端发送消息都是通过token进行推送,此刻需要获取到接收离线消息的设备token。打开dos系统输入下图命令即可捕捉到app的相关信息,其中就有token值。
注意:先打开dos系统输入上图命令回车运行,再启动运行到手机端的app才能跑出app信息。
六、华为端测试离线消息
1、添加推送通知并测试
拿到device token后进入推送通知中可以测试发送离线消息,如果在上述中可以正常拿到token值,那此处测试发送消息是可以正常接收到的。
我的测试到此是可以正常接收离线消息的。
七、申请子分类权益
本来以为到上述步骤已经调通了,但还是有个最后小坑。由于华为后台的升级,将推送的消息分为了俩类,即服务与通讯类和营销类。我们开通的账号默认发送的是营销类消息,是有频次限制的。所以我后来将推送通知提交后,后来收不到消息了。这个时候需要申请自分类权益,因为该分类是不限制推送频次的,所以没办法,只能继续搞。
申请自分类权益有条件,小伙伴们需要注意一下。俩种方法:其一、将你的华为应用发布上架才能申请;其二、如果是公司内部的app不准备上线的,可以写个申请发给官方也可以,权益开通后也可以申请。
具体的申请方法我就不写了,将官方地址放出来,大家认认真真的看看就明白了。
自分类权益申请官方地址
自分类申请下来后还需要最后适配一步。
写到最后
从开始发布到最后,历时近三天吧。整体的体验是,写代码不难,大部分时间都花在了研究官方平台上面。中间也咨询了个推官方技术和华为官方技术,感谢吧。
感谢路过的小伙伴们,能百忙中抽出时间阅读本文章,希望能帮助到大家,少踩坑。
如果有写的不正确的地方,也希望大家能积极指正。
点赞、关注加收藏,一键三连行动起来。