Android集成信鸽推送【华为厂商通道之坑】

2023-11-21 22:20

本文主要是介绍Android集成信鸽推送【华为厂商通道之坑】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android集成信鸽推送(华为通道)之坑

公司App之前用的是腾讯信鸽推送【V3.2.2之前版本】前不久信鸽新增加了华为小米魅族厂商通道【V3.2.2之前版本】,然后就赶紧升级添加华为小米魅族厂商通道,提高推送成功率。

首先按照流程开始准备工作

  • 第一步升级信鸽SDK到v3.2.2,一切正常;
  • 申请华为推送密钥、小米推送密钥、魅族推送密钥;
  • 添加新的依赖替换旧的Jar,添加混淆代码;
  • 添加华为小米魅族推送代码以及manifest中进行各种注册权限;

开始调试工作

  • 单独使用信鸽推送:打开APP消息透正常/杀死APP后还是也正常收不到消息,走短息通道了(以前就是这个鬼样子)
  • 首先是用华为手机在测试服务器上鼓捣了一下不行;现【华为系统推送渠道】需要打包apk才可以
  • 于是打包apk;直接登录账号,注册成功一切和顺利。在信鸽推送平台上按账号推送消息透传、推送栏都是秒到,感觉这样信鸽推送集成华为通道就ok啦

出问题啦!

  • 初步测试ok后,换了个账号再试;在信鸽推送平台上无论是消息透传还是通知栏,apk打开还是杀死,推送就是收不到;
  • 打开log发现我切换账号以后日志就是这样子(华为通道必须打包才行,没法debug):
    这里写图片描述
  • 在信鸽开发文档【客户端返回码】中提示:10002:正在执行注册操作时,又有一个注册操作到来,则回调此错误码;
    这里写图片描述

  • 初步定位:每次账号退出时,调用信鸽解注册失败,App还注册状态,再次登录就信鸽重复注册导致1002

  • 于是卸载apk【解注册】,重新安装登陆,推送,一切正常;退出再次登录又是10002,这样确定是退出时解注册的代码问题了;
  • 信鸽代码前任Android集成的,都没有熟悉代码:信鸽V3.2.2由于集成厂商通道信鸽部分SKD中API做出修改,而且在V3.2.2失效
  • 修改注册API解注册API再在信鸽推送官网全部正常,本想华为通道总可以OK了吧。
  • 很快又发现在公司服务端推送的消息华为手机收不到,但是是信鸽官网推送能收到,那应该是服务端代码问题的不是Android端的问题吧
  • 服务端开发检查后说他那代码没问题,他在信鸽SDK信鸽官网一致,而且服务端推送返回结果码是:0,问题就应该是在Android端,服务端都是技术大牛他们那么一说,结果问题回到Android端了
  • 折腾了很久没有搞定,最后之前Android开发[转JavaEE服务端],他说自己搞个服务端信鸽demo试一下不就知道了嘛,我是半路出家只会点Android搞了很久才搞出个Java的demo,结果demo所有推送华为手机秒到,确定是服务端代码的问题
  • 结果服务端的大佬发现问题是服务端SDK没有升级,之前用pythonV1.1.8版本SDK,现在信鸽官网pythoySDK还是V1.1.8,但是下载解压后发现里面的SDK版本变成V1.1.8.3了;坑呀
  • 最后一个比较折腾的是:华为推送通道收到透传消息时,会拉起App的(例如:微信QQ)并且提示收到消息,但我App没有拉活,最后才发现是华为有个“自启管理”只有开启App的自启权限在收到透传消息会拉起App【微信QQ钉钉之类在华为应用商店前100的可以联系华为在系统中默认开启的自启权限】

总结

  • 信鸽集成华为推送中遇到下面几个坑 ,小伙伴留心啦:
    1. 测试华为通道时apk必须打包;有点像集成微信支付需要带正式的签名之类、
    2. 信鸽旧版升级的在V3.2.2中之前的部分api已经失效需要注意【尤其是注册和解注册】;
    3. 服务端SDK升级需留心,以Python服务端SDK为例:之前SDK是V1.1.8,但已经升级后SDK在官网写的还是V1.1.8,下载解压才发现已经升级为V1.1.8.3;据说连个升级说明都没有,信鸽团队就是这么自信;
    4. 还有是在信鸽的SDK消息透传onTextMessage(Context context,XGPushTextMessage message)的XGPushTextMessage 中有个customContent对content作为补充的字段,但是在华为推送透传中只有titlecontent字段,结果就是在V3.2.2SDK中信鸽团队无情将customContent字段抛弃了 ,如果有使用该字段的小伙伴要及时修改

最后就修改不熟悉的代码先仔细看看一遍代码看一遍文档了,不然小心事倍功半了*

这篇关于Android集成信鸽推送【华为厂商通道之坑】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405496

相关文章

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.

Spring Boot 集成 Solr 的详细示例

《SpringBoot集成Solr的详细示例》:本文主要介绍SpringBoot集成Solr的详细示例,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录环境准备添加依赖配置 Solr 连接定义实体类编写 Repository 接口创建 Service 与 Controller示例运行

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4