开发者社区 问答 正文

应用研发平台EMAS离线时使用系统的推送的通知栏如果不配置的话,OPPO会接收不到通知。该如何解决?

应用研发平台EMAS遇到一个问题,我们离线时使用系统的推送的通知栏,在线的时候使用自定义通知栏,现在出现一个问题,后端配置OPPO的AndroidNotificationChannel的时候,在线推送的时候系统会推送通知,加上自定义的会出现两个通知栏,如果不配置的话,其它厂商的机型都是正常的一个通知栏,但是OPPO会接收不到通知。该如何解决?

展开
收起
2401。 2023-09-02 09:56:51 149 分享 版权
4 条回答
写回答
取消 提交回答
  • 你可以在EMAS控制台中为每个渠道创建一个单独的通道,然后分别配置对应的推送通知栏微信截图_20230902110126.png
    你可以在推送的消息体中添加一个额外的字段,用来表示推送的类型(离线或在线)微信截图_20230902110117.png

    2023-09-03 12:45:38
    赞同 展开评论
  • NotificationChannel的通知权限,一般品牌是默认给权限的,但是OPPO和VIVO默认不给权限,需要开启权限。

    image.png

    2023-09-03 01:56:30
    赞同 展开评论
  • 对于这个问题,我们可以尝试以下几种解决方案:

    1. 区分推送类型:你可以在推送的消息体中添加一个额外的字段,用来表示推送的类型(离线或在线)。这样,你的客户端就可以根据推送的类型来自动决定展示哪种通知栏。
      b40ea909eee057cdaae3900745e2866e_p238879.png

    2. 使用多通道推送:部分手机厂商(如小米、华为等)支持多通道推送功能。你可以在EMAS控制台中为每个渠道创建一个单独的通道,然后分别配置对应的推送通知栏。这样,在线和离线的推送就会被路由到不同的通道,从而避免了重复推送的问题。
      image.png

    3. 使用第三方库:有些第三方库(如OneSignal、Firebase等)提供了自动区分推送类型和多通道推送的功能。你可以考虑使用这些库来解决你的问题。

    4. 优化推送逻辑:你可以在你的客户端中添加一些逻辑,用来判断当前的网络状态。如果网络状态良好,就使用在线的推送通知栏;否则,就使用离线的推送通知栏。

    2023-09-02 11:48:02
    赞同 展开评论
  • 全栈JAVA领域创作者

    您可以尝试在EMAS平台上为OPPO设备配置一个自定义的通知栏,以确保在离线时也能够正常推送通知。具体的配置方法可以参考EMAS官方文档中关于AndroidNotificationChannel的说明。同时,您也可以考虑在应用中添加自定义的通知设置,让用户可以选择是否开启系统通知栏或自定义通知栏,以避免出现两个通知栏的情况。希望这些建议能够帮助您解决问题。

    2023-09-02 10:09:39
    赞同 展开评论