应用研发平台EMAS遇到一个问题,我们离线时使用系统的推送的通知栏,在线的时候使用自定义通知栏,现在出现一个问题,后端配置OPPO的AndroidNotificationChannel的时候,在线推送的时候系统会推送通知,加上自定义的会出现两个通知栏,如果不配置的话,其它厂商的机型都是正常的一个通知栏,但是OPPO会接收不到通知。该如何解决?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你可以在EMAS控制台中为每个渠道创建一个单独的通道,然后分别配置对应的推送通知栏
你可以在推送的消息体中添加一个额外的字段,用来表示推送的类型(离线或在线)
对于这个问题,我们可以尝试以下几种解决方案:
区分推送类型:你可以在推送的消息体中添加一个额外的字段,用来表示推送的类型(离线或在线)。这样,你的客户端就可以根据推送的类型来自动决定展示哪种通知栏。
使用多通道推送:部分手机厂商(如小米、华为等)支持多通道推送功能。你可以在EMAS控制台中为每个渠道创建一个单独的通道,然后分别配置对应的推送通知栏。这样,在线和离线的推送就会被路由到不同的通道,从而避免了重复推送的问题。
使用第三方库:有些第三方库(如OneSignal、Firebase等)提供了自动区分推送类型和多通道推送的功能。你可以考虑使用这些库来解决你的问题。
优化推送逻辑:你可以在你的客户端中添加一些逻辑,用来判断当前的网络状态。如果网络状态良好,就使用在线的推送通知栏;否则,就使用离线的推送通知栏。
您可以尝试在EMAS平台上为OPPO设备配置一个自定义的通知栏,以确保在离线时也能够正常推送通知。具体的配置方法可以参考EMAS官方文档中关于AndroidNotificationChannel的说明。同时,您也可以考虑在应用中添加自定义的通知设置,让用户可以选择是否开启系统通知栏或自定义通知栏,以避免出现两个通知栏的情况。希望这些建议能够帮助您解决问题。