首页 文章

iOS推送通知服务扩展不一致的工作

提问于
浏览
2
  • 在我们的应用程序中,我们使用推送通知通知用户,但如果用户没有't received push (e.g. user' s设备离线),那么我们会向他发送短信 .

  • 由于APN不提供交付报告,我们已经实施了自己的方法,使用 Service Extensionbackend 服务器发送报告:

  • 当应用程序收到推送通知时,它会在服务扩展的方法内向后端发送http请求 -

didReceive(_ request:UNNotificationRequest,withContentHandler contentHandler:@escaping(UNNotificationContent) - > Void)

可以在30秒内进行提取作业或发出http请求 .

但是,有时用户会抱怨同时接收短信和推送 .

当我们检查数据库中的日志时,这些设备没有PUSH传送报告 .

My questions are:

  • 服务扩展是否有可能无法启动?

  • 有关如何解决此类错误的任何建议?

1 回答

  • 1

    在您的应用中,您可能已在应用的目标功能中启用 Background ModeRemote notifications 以及 Service Extension . 所以发生的事情是,当您收到推送通知时,您的应用程序处于活动状态大约30秒 . 在此期间,您的交付服务将被调用并更新您的服务器 . 由于通知不包含任何媒体,因此显示通知需要一些时间 .

    但是一旦您收到交付,您的服务器就会向用户发送短信 . 所以这就是你同时获得APN和短信的原因 .

    Fix: Add a delay at your server for sending SMS by around 1 min. So as to avoid conflict.

相关问题