应用研发平台EMAS中react native应用集成后,在华为手机上推送通知,通知的送达率不高,是什么原因呢?华为通知送达率不高, 打包出来release的apk,在远程真机上测的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在应用研发平台 EMAS 中,React Native 应用集成后,在华为手机上推送通知的送达率不高,可能由以下几个原因导致。以下是详细分析及解决建议:
华为手机对第三方推送服务(如阿里云自有通道)有严格的限制,尤其是在应用被杀进程或处于后台时,推送消息可能无法通过自有通道送达。
AppKey
和 AppSecret
,并确保在华为开发者平台上完成应用注册和推送服务开通。华为推送通道支持消息分类(如资讯营销类和服务与通讯类),不同分类的消息优先级和展示行为不同。如果未正确设置消息分类,可能导致通知被系统过滤或降权。
AndroidNotificationHuaweiChannel
参数,明确指定消息分类:
EMAS 移动推送默认优先使用自有通道进行消息下发,只有在自有通道断连时才会切换到厂商通道。如果华为手机对自有通道进行了限制,可能导致消息无法及时送达。
AndroidNotificationChannel
参数,确保与华为推送通道的 channel_id
对应。在华为手机上,如果用户通过 设置 > 应用管理 > 强制关闭应用 的方式关闭了应用,推送消息将无法送达。这是由于华为系统限制了强制关闭应用的自启动能力。
华为手机的电池优化功能可能会限制应用的后台运行,从而影响推送消息的接收。
华为推送通道对通知标题和内容的格式有一定要求。如果标题或内容过于简单,可能导致推送失败。
AndroidInboxBody
参数,使用多行文本模式提升消息的丰富性。在打包 Release APK 时,可能存在以下问题导致推送失败: - 签名不一致:推送服务依赖于应用的签名信息,如果 Release APK 的签名与华为推送服务注册的签名不一致,可能导致推送失败。 - ProGuard 配置错误:如果 ProGuard 配置不当,可能导致推送相关的类或方法被混淆或移除。
proguard-rules.pro
文件中添加以下规则,防止推送相关类被混淆:
-keep class com.huawei.hms.** { *; }
-keep class com.alibaba.sdk.android.push.** { *; }
华为推送通道对消息的发送频率和数量有一定的限制。如果超过限额,可能导致部分消息无法送达。
针对华为手机推送通知送达率不高的问题,建议按照以下步骤逐一排查和解决: 1. 确保已正确接入华为厂商通道。 2. 设置正确的消息分类和通知通道参数。 3. 检查应用的自启动权限和电池优化设置。 4. 优化推送内容格式,避免过于简单。 5. 确保 Release APK 的签名和 ProGuard 配置正确。 6. 检查推送 QPS 和限额限制。
通过以上措施,可以有效提升华为手机上的推送通知送达率。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。