开发者社区 问答 正文

应用研发平台EMAS用户是收不到推送,然后尝试删除重装;然后还是收不到,如何解决?

应用研发平台EMAS用户是收不到推送,然后尝试删除重装;然后还是收不到?
最近经常收到线上客户用户反馈推送收不到,有的用户连续几个小时收不到,然后有突然能收到;有的用户直接就某天一直收不到;iOS和Android都有该问题;这个问题导致我们很多用户退货了。

展开
收起
真的很搞笑 2024-04-03 17:19:20 57 分享 版权
阿里云 AI 助理回答

问题分析与解决方案

根据您描述的问题,用户反馈在使用应用研发平台EMAS时,iOS和Android端均存在推送收不到的情况。以下是针对该问题的详细分析与解决步骤。


1. 推送收不到的可能原因

推送收不到的原因可能涉及客户端、服务端以及网络环境等多个方面。以下是一些常见原因及排查方向:

  • 设备在线状态异常:设备可能处于离线状态,导致推送消息无法及时送达。
  • 厂商通道限制:部分厂商(如华为、小米、OPPO、vivo等)对推送通道有严格的限制,可能导致消息延迟或丢失。
  • 证书配置问题(iOS):iOS推送依赖APNs服务,若证书过期或配置错误,会导致推送失败。
  • SDK版本问题:旧版本SDK可能存在兼容性问题,建议升级到最新版本。
  • 通知权限未开启:用户可能未授予通知权限,或者通知通道未正确注册(尤其是Android 8.0及以上设备)。
  • 网络问题:用户设备可能处于弱网环境,导致推送消息未能成功接收。
  • 推送策略问题:推送内容可能被系统或厂商通道过滤,例如标题或内容不符合规范。

2. 针对Android端的排查与解决方案

2.1 检查设备在线状态
  • 确认设备是否在线。可以通过服务端调用相关接口查询设备在线状态。
  • 如果设备长时间离线,建议检查设备网络连接是否正常。
2.2 检查厂商通道配置
  • 厂商通道权限:部分厂商(如OPPO、vivo)默认不开启通知权限,需引导用户手动开启。
  • 厂商通道消息分类:确保已正确申请并使用厂商通道的消息分类。
  • 测试阶段绕开限制:在测试阶段,可以通过特定方式绕开厂商通道的消息条数限制。
2.3 升级SDK版本
  • 建议将Android SDK升级至最新版本(V3.1.1及以上),以支持NotificationChannel机制。
  • 注册NotificationChannel:对于Android 8.0及以上设备,必须注册NotificationChannel,否则通知无法显示。参考代码如下:
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
      NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      String id = "1";
      CharSequence name = "notification channel";
      String description = "notification description";
      int importance = NotificationManager.IMPORTANCE_HIGH;
      NotificationChannel mChannel = new NotificationChannel(id, name, importance);
      mChannel.setDescription(description);
      mChannel.enableLights(true);
      mChannel.setLightColor(Color.RED);
      mChannel.enableVibration(true);
      mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
      mNotificationManager.createNotificationChannel(mChannel);
    }
    

    注意:修改NotificationChannel后,App需要卸载重装才会生效。

2.4 检查推送内容
  • 确保推送内容符合厂商通道的要求。例如,vivo推送标题和内容过于简单可能导致失败。

3. 针对iOS端的排查与解决方案

3.1 检查APNs证书
  • 证书有效期:确认APNs证书未过期。如果证书过期,需重新生成并上传至EMAS控制台。
  • 证书模式匹配:确保开发环境和生产环境的证书模式匹配。例如,测试环境使用开发证书,正式环境使用生产证书。
3.2 检查deviceToken
  • 确认客户端能够正确获取deviceToken。如果deviceToken为空或无效,可能导致推送失败。
  • 常见问题
    • iOS端出现无APNs token或APNs token失效:检查推送权限是否开启,并重新初始化SDK。
    • BadDeviceToken或DeviceTokenNotForTopic:确认deviceToken与推送环境匹配。
3.3 检查推送策略
  • 确保推送内容符合APNs的要求。例如,推送通知的标题和内容不能包含敏感信息。

4. 其他通用排查步骤

4.1 检查推送日志
  • 登录EMAS控制台,查看推送日志,确认推送请求是否成功发送至目标设备。
  • 如果日志显示推送成功但用户未收到,可能是设备端问题,需进一步排查客户端配置。
4.2 检查网络环境
  • 确认用户设备是否处于弱网环境。弱网可能导致推送消息延迟或丢失。
4.3 联系技术支持
  • 如果以上步骤均无法解决问题,建议联系阿里云技术支持团队,提供详细的日志信息以便进一步排查。

5. 预防措施与优化建议

  • 定期更新SDK:保持SDK版本为最新,以获得最新的功能和修复。
  • 监控推送效果:通过EMAS提供的数据统计功能,实时监控推送到达率和用户反馈。
  • 多通道推送:结合厂商通道和辅助弹窗,提高推送的到达率。
  • 用户教育:引导用户开启通知权限,并确保通知通道配置正确。

通过以上步骤,您可以逐步排查并解决推送收不到的问题。如果问题仍然存在,请提供更多详细信息(如推送日志、设备型号、操作系统版本等),以便进一步分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答