gpt4 book ai didi

ios - 静默推送消息,如果应用程序处于后台且未插电则无法使用react

转载 作者:行者123 更新时间:2023-11-29 02:19:51 24 4
gpt4 key购买 nike

我正在尝试对静默推送消息使用react。我在我的 plist 文件中为这两种背景模式注册了我的应用程序。

我正在将以下 json 发送到我的应用程序:

{
"aps": {
"content-available": 1
},
"Bla": "Blub"
}

如果我的应用程序在前台,一切正常。当我收到推送时,我在我的代码中执行了一个函数。如果我的应用程序在后台运行并连接到我的 Mac 或 ac,一切都很好......但是如果我拔下我的设备,设备将无法正常工作或至少不再调用我的功能......这是为什么?

最佳答案

我理解静默通知的工作方式是,它们可以被发送,系统可能会收到它们,但可能不会根据不同的因素对其采取行动。

无声通知用于在设备上提供多任务处理的错觉,而且设备也节能。我的理解是,系统使用一些因素来确定是否应该将静默通知传递给应用程序,其中包括:

  • 当前网络状况
  • 当前功率级别
  • 应用程序使用情况。
  • 用户选择
  • 可能会耗尽电量。

在您的情况下,无声通知在前台运行,因为您是最重要的应用程序。用户可能正在执行不立即涉及内容的任务。但内容更新可能会有用。例如,对于 Facebook,我可能正在 friend 墙上写帖子,我的提要中有新故事。很高兴在我做其他事情的时候更新它。

对于连接到您的计算机的情况 - 设备正在充电,执行后台任务不会耗尽设备电池。

提供有关因素的更多详细信息:

网络状况

  • 如果设备连接 Wi-Fi,则更有可能允许网络调用,因为这不像使用蜂窝数据那样耗电。

当前功率级别

  • 这也与网络条件有关。
  • 是否在相关 radio 已开启时收到通知?
  • 这也可以根据设备历史记录与当前位置相关联。如果该位置被确定为“家”,则可以假设该设备位于电源附近。
  • 时间也可能是其中的一个因素。例如“设备开始充电的平均时间是多少,是否关闭等。”
  • 设备是否已连接至电源?

应用程序使用

  • 用户使用您的应用的频率如何?使用模式如何?
  • 是否在允许应用更新其内容的时间收到通知?一个可能的示例是,用户可能会在接下来的 10 分钟到 1 小时内使用该应用程序。更新内容可能是有意义的。但如果用户很可能在接下来的2分钟或2小时内使用该应用程序。它可能会推迟这一点,因为它可能很快就会被用户启动,或者不会很快被使用,从而浪费资源。

用户选择

  • 用户随时可以选择停止后台数据刷新。
  • 用户可以选择不允许您的应用使用蜂窝数据。
  • 虽然超出了您的问题范围,但我认为应该注意的是,不应假设静默通知总是会通过,也不应成为您申请的关键部分。

可能的电力消耗

  • 与其他因素相比,我认为这一点不存在,但需要牢记。
  • 当您执行此后台任务时,过去的功耗情况如何?
  • 如果您是一个好公民,尽可能节能等,您可能更有可能被要求更新。
  • 但是,如果您在执行此任务时在系统 View 中没有尽可能地节能,您可能不会收到尽可能多的通知。

据我所知,这些因素不是确定的、未证明的或陈述的。我根据 WWDC 谈话、之前的背景任务限制和我自己的假设,将它们作为可能的原因提出建议。但我希望它们能帮助您了解为什么您的静默通知在某些情况下有效,而在其他情况下无效。

关于ios - 静默推送消息,如果应用程序处于后台且未插电则无法使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28279375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com