首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS 13和无声通知

iOS 13和无声通知
EN

Stack Overflow用户
提问于 2020-04-20 19:07:02
回答 1查看 647关注 0票数 1

我遇到了一个很奇怪的问题,我找不出根本原因。直到几周前,我们的应用程序还能正常运行,用于ios12和ios13的后台/无声通知。因此,一些背景信息:

  1. 我们使用SNS发送可视/可听和无声的背景通知。
  2. 我们知道推送式报头是ios13所必需的。SNS自动处理这个新的报头,我们的手动测试(即没有SNS)也产生了相同的结果。
  3. 静默通知(即内容可用: 1)在ios13.3 (或更高版本)上总是失败,但在ios12.4 (及以下)上总是有效。
  4. 在我们的快速代码中,我们使用:didReceiveRemoteNotification:fetchCompletionHandler进行无声通知。我们还使用userNotificationCenter (与willPresent和didReceive一起使用)。每当我们发送可听/可视通知时,willPresent就会在ios12和ios13上触发。在didReceiveRemoteNotification:fetchCompletionHandler上,无声通知会触发ios13,但不会触发ios13。
  5. 在测试过程中,我们成功地发送了一个空的警报类型来触发ios13上的无声通知,这在ios12上也是有效的(这会触发willPresent)。对我来说,这就像是一次黑客攻击,因为它可能会在很短的时间内唤醒设备,如果应用程序在后台运行,通知就会消失。
  6. 在其他视图控制器中,我们对接收到的消息进行NotificationCenter观察,以采取适当的操作。

在我看来,{“内容可用”:1}从不在ios13上工作,而是在ios12上工作。而且,didReceiveRemoteNotification:fetchCompletionHandler从不在ios13上被调用,但在ios12上被调用。我们使用无声通知(即内容可用:1)的意图是在应用程序处于前台或后台时发生更改时刷新服务中的详细信息。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-25 00:22:04

我解决了这个问题。然而,在我进入解决方案之前,我想提到的是,我只在iOS13上遇到了这个问题,并且使用了无声通知。相同的代码与具有相同功能的iOS12一起工作。

我们的应用程序有一个单独的屏幕,用于在应用程序第一次启动时请求通知权限。在这个阶段,我们注册了通知设备。下一次,当应用程序启动时,我们不再显示这个屏幕了。为了让它在ios13上工作,我们每次都必须在AppDelegate的didFinishLaunchingWithOptions中重新注册APNS。同样,在iOS12上,无声通知在没有重新注册APNS的情况下工作,但是在iOS13上,我们每次都必须重新注册。

我希望这能帮助其他遇到这个问题的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61330123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档