跳板[48] : <Warning>高优先级推送: [捆绑 ID] - BAR 禁用



问题

发送发布应用程序版本的静默通知显示下一个日志:SpringBoard[48] <Warning>: High Priority Push: [Bundle ID] - BAR Disabled

知道吗?酒吧已禁用??当出现"BAR Disabled"日志时,似乎没有调用方法(didReceiveRemoteNotification-fetchCompletionHandler)。

更多信息

  • BAR禁用日志出现在经过测试的iphone4s和iphone6的生产应用程序中
  • BAR禁用日志没有出现在测试的iPhone5中,并且调用了fetchCompletionHandler
  • 调试时未显示BAR禁用日志
  • BAR禁用日志显示,参数为"content available":1
  • 经过快速客观的测试-c
  • 使用分布配置文件进行测试(试飞)&adhoc配置文件(itunes)
  • iOS版本9.3.1

通知

{"aps":{"alert":"Test","sound":"default","content-available":1}, "data" : 345}

结果

显示带有文本"Test"的通知并播放默认声音,但没有调用fetchCompletionHandler,只是一个日志:SpringBoard[48] <Warning>: High Priority Push: [Bundle ID] - BAR Disabled

BAR禁用意味着后台应用程序刷新未启用,因此应用程序无法执行fetchCompletionHandler。

从设备转到"设置">"常规">"后台应用程序刷新",然后打开"后台应用软件刷新"如果您从应用程序切换器退出某个应用程序,在您再次打开它之前,它可能无法运行或检查新内容。

有关后台应用程序刷新(BAR)的更多信息:

这是10分钟宽限期之外的另一件事。启用BAR的应用程序可以不时醒来,直到它从应用程序切换器退出或手机重新启动。这里没有10分钟的限制,重要的是要理解BAR不同于背景。我所说的"醒来"是指"睁开瞌睡的眼睛,下载一些东西,然后直接回去睡觉"。如果你从应用程序切换器中杀死应用程序,它的BAR权限也会消失。

启用BAR的应用程序通常会安排在适当的时候醒来更新自己。这些时刻包括:

  • 当设备正在使用时
  • 当设备连接到wifi和/或电源时
  • 当收到应用程序的推送通知时
  • 当位置发生变化时

从苹果自己那里:iOS根据你对设备的使用来学习模式,并试图预测应用程序何时应该在后台进行BAR更新。它还了解设备何时通常处于非活动状态,例如在夜间,以在设备未使用时降低更新频率。

多亏了/u/Niruga共享的信息,还有一种所谓的"无声"推送通知,应用程序可以利用它来唤醒应用程序进行BAR更新。用户看不到静默推送通知。

例如,Dropbox利用BAR和位置来保持其照片上传工作超过10分钟,直到完成上传为止。它不会一直上传,因为BAR不是这么做的。因此,Dropbox中发生的事情是,它使用位置更改使应用程序唤醒并上传10分钟,然后再进入睡眠状态,然后等待下一次位置更改,使应用程序再次唤醒并继续它停止的位置,然后重复,直到所有上传都完成,而用户无需在前台打开应用程序。

要决定是否启用BAR,请考虑您是否相信应用程序开发人员不会滥用该功能。

希望有帮助

参考:https://www.reddit.com/r/jailbreak/comments/3eao32/discussion_write_up_ios_backgrounding_and/

相关内容

  • 没有找到相关文章

最新更新