在集成推送时候,需要先了解融云针对推送的定义: Push 通知是当接收方的主进程被杀死或者回收,或者您主动调用 disconnect() 的操作, 导致 IM 长连接通道与服务器断开后。 在这种情况下,会收到Push 服务;
image
说白了,就是应用进程被杀掉,才会收到push 的,否则的话,是会走融云内部的长链接通道的;若是连应用进程都不了解的话,我要拿起我四十米的大刀了。 avatar

好了,前提介绍结束,接下来,我们正式开始避坑。

融云的推送分为俩大类:RongPush 以及其他厂商推送;至于为什么会有厂商推送 ,主要书由于众说周知的原因,各个手机厂商针对系统的room 太深,导致融云的push 进程服务无法自启动以及无法常存与服务后台,所以为了满足离线时候,push 的到达率,所以接入了主流的厂商推送服务,至于你说,为什么不接入统一_推送联盟_,估计等推送联盟孵化出来,可能得等到2045年了;哈哈,估计我再不开始介绍接入,大家就要发飙了。 avatar

各位客官,稍安勿躁,马上开始。本篇我们先介绍厂商推送之华为推送过程中遇到的坑;

首先,按照融云官网的描述,融云SDK 目前是有俩个版本,2.x 版本的SDK 以及4.x 版本的SDK ,分别对应的是华为的2.x 的jar 以及4.x 的jar ,可以分别参考 2.x版本 以及4.x版本,按照文档进行集成即可,具体集成过程按照文档集成即可,此处无需多说;

接下来,先介绍我在集成2.x 版本时候遇到的问题:

1.出现的问题一,没有填写对应的应用标识;(此处是我的锅,没有细致的看文档);

按照融云文档的描述, avatar 此处要填写对应的华为的appkey 等数据的,而愚蠢的我竟然没有填写对应的 AppIDAppSecret,希望各位 大大在集成过程中不要跟我一样犯傻;

2.出现的问题二,按照文档配置完成了,结果,还是收不到推送,不会进行排查;

似乎这个问题,很多小伙伴都遇到了,所以,我在融云知识库中找到了一篇官方提供的排查手段,仅供大家参考 https://support.rongcloud.cn/ks/ODg0 ,若是大家还是搞不定,可以直接找融云进行技术支持的;

以上是在集成2.x 版本时候遇到的问题,不算特别困难,也是比较轻松的解决了;

但是,事情万万没有想到的那么简单,时间过去一个月,项目要升级4.x 的融云SDK ,于是,华为推送也要进行对应的升级,于是我开开心心准备认真参谋一下4.x文档,还好,文档比较简单;

于是,对应的问题,也出现了:

问题1:在升级过程中,并没有找见 agconnect-servics.json 文件的下载地址。

经过与融云技术人员的沟通,在华为提供5.0版本的推送服务之后,agconnect-servics.json 下载位置改变了,所以我将我知道的下载路径提供给大家,在华为开发者平台-我的项目中-对应的项目下载即可。

问题2: 由于我是从2.x 升级到4.x 的,所以,眼瞎的我没有看清楚文档中AndroidMainfest 中的配置是要删除的,所以导致找不到文件了,所以请大家一定要看清楚标题,是删除配置,不是添加配置;

问题3: 在EMUI 10以上 是可以收到推送的,但是在EMUI 10以下,收不到推送。

这个问题经过与融云技术人员以及华为技术人员的沟通可以确定,由于华为不再继续维护2.0推送服务,改推4.0 以上的服务,但是4.0的推送服务,又对HMSCore 是由要求的,所以只能升级用户的 HMSCore服务,不过融云对外提供了升级监听,具体可以参考融云文档


融云RongCloud
82 声望1.2k 粉丝

因为专注,所以专业