【FAQ】推送前台应用的通知处理功能没生效,如何进行排查?

一、前台应用的通知处理简介

在调用推送接口时可以设置“foreground_show”字段控制前台应用的通知栏消息是否通过NC展示。“foreground_show”默认值为“true”,应用在前台时由NC展示通知栏消息;当设置为“false”时,应用在前台时,通知栏消息将不会展示,消息内容会通过onMessageReceived(RemoteMessage message)方法传递给应用。前台应用的通知处理指导文档

二、问题现象

推送请求消息体中设置“foreground_show”值为“false”,推送消息时应用在前台,消息没有通过onMessageReceived(RemoteMessage message)方法传递给应用,仍然是通过通知栏展示的。

三、问题排查

该功能对手机系统版本和集成的push SDK版本有要求,可以先检查手机系统版本和集成的push SDK版本是否符合如下要求。

如果手机系统版本和集成的push SDK版本符合要求,则需要抓取logcat日志。排查工程中定义了几个继承HmsMessageService的类,如果定义了多个继承HmsMessageService的类,也会导致实现的方法不会被调用,继承HmsMessageService的类只能有一个。

日志抓取方法:

1、使用adb连上手机后,分别执行下面命令:

adb shell setprop log.tag.hwpush VERBOSE

adb logcat -v threadtime 1> D:\hwpush.log

2、尝试复现遇到的问题场景。

3、等待几十秒,按快捷键“Ctrl+C”完成日志抓取

注:生成日志后注意看下日志记录的时间段需要包含复现问题的时间点。

查找关键日志:

搜索HmsMessageService num is关键字,找到如上图所示的日志,结合日志上下文中的packageName确定对应应用的日志,HmsMessageService num is后面的数值就是继承HmsMessageService的类的数量,如果不为1,请排查工程代码,并删除多余的类。

了解更多详情>>

访问推送服务开发者联盟官网

获取推送服务开发指导文档

相关推荐

  1. Web前端功能:深入剖析与应用实践

    2023-12-11 18:22:02       26 阅读
  2. 处理被拒绝问题

    2023-12-11 18:22:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 18:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 18:22:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 18:22:02       82 阅读
  4. Python语言-面向对象

    2023-12-11 18:22:02       91 阅读

热门阅读

  1. 【CSP】202203-1_未初始化警告Python实现

    2023-12-11 18:22:02       48 阅读
  2. 【互联网小趣味】常用系统架构介绍扫盲

    2023-12-11 18:22:02       61 阅读
  3. mysql基本语法

    2023-12-11 18:22:02       58 阅读
  4. UV、PV解析

    2023-12-11 18:22:02       64 阅读
  5. 4.PyTorch——优化器

    2023-12-11 18:22:02       54 阅读
  6. react re-render的解决方案

    2023-12-11 18:22:02       59 阅读
  7. golang游戏服务器 - tgf系列课程01

    2023-12-11 18:22:02       62 阅读
  8. GO设计模式——3、抽象工厂模式(创建型)

    2023-12-11 18:22:02       59 阅读