融云集成之避坑指南 -Android 推送篇
在集成推送时候,需要先了解融云针对推送的定义: Push 通知是当接收方的主进程被杀死或者回收,或者您主动调用 disconnect() 的操作, 导致 IM 长连接通道与服务器断开后。 在这种情况下,会收到 Push 服务;
说白了,就是应用进程被杀掉,才会收到 push 的,否则的话,是会走融云内部的长链接通道的;若是连应用进程都不了解的话,我要拿起我四十米的大刀了。
好了,前提介绍结束,接下来,我们正式开始避坑。
融云的推送分为俩大类:RongPush 以及其他厂商推送;至于为什么会有厂商推送 ,主要书由于众说周知的原因,各个手机厂商针对系统的 room 太深,导致融云的 push 进程服务无法自启动以及无法常存与服务后台,所以为了满足离线时候,push 的到达率,所以接入了主流的厂商推送服务,至于你说,为什么不接入统一推送联盟,估计等推送联盟孵化出来,可能得等到 2045 年了;哈哈,估计我再不开始介绍接入,大家就要发飙了。
各位客官,稍安勿躁,马上开始。本篇我们先介绍厂商推送之华为推送过程中遇到的坑;
首先,按照融云官网的描述,融云 SDK 目前是有俩个版本,2.x 版本的 SDK 以及 4.x 版本的 SDK ,分别对应的是华为的 2.x 的 jar 以及 4.x 的 jar ,可以分别参考 2.x版本 以及4.x版本,按照文档进行集成即可,具体集成过程按照文档集成即可,此处无需多说;
接下来,先介绍我在集成 2.x 版本时候遇到的问题:
1.出现的问题一,没有填写对应的应用标识;(此处是我的锅,没有细致的看文档);
按照融云文档的描述,
此处要填写对应的华为的 appkey 等数据的,而愚蠢的我竟然没有填写对应的 AppID、AppSecret,希望各位 大大在集成过程中不要跟我一样犯傻;
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 服务,不过融云对外提供了升级监听,具体可以参考融云文档。
评论