自定义警报通知IOS保持应用程序运行

Nic*_*uir 9 background-process alarm ios uilocalnotification

我正在尝试创建一个闹钟应用程序,它可以播放下载的或流式传输的视频和音频作为本地通知.对于Android这是可行的,但对于IOS我知道苹果有限制.

我注意到Rise和The Rock Clock要求你将应用程序保留在前台(例如下面的例子).我已经读过他们通过禁用多任务来完成这项工作UIApplicationExitsOnSuspend.

我想知道这是否仍然是显示自定义通知的唯一(最佳?)方式,或者它们是否仅支持较旧的操作系统,而IOS中是否有更改可提供更好的用户体验?

谢谢

在此输入图像描述

Her*_*rix 6

没有太多可能的方法来做到这一点,没有人是好的.

  1. 您可以安排UILocalNotification或UNNotificationRequest.这种方式允许您使用某些预定义的声音创建警报.没有帮助,因为声音持续时间限制和不可能播放流.
  2. 具有后台配置的URLSession.根据文档您可以安排请求.仅适用于iOS 11,不保证将执行请求.

  3. 使用VoIP或静音推送.这种类型的推送有可能在设备接收后在后台启动应用程序.棘手的方式,但可以做到这一点.如果用户没有互联网连接,没用.

  4. 将应用保持在前台.最简单的方式和工作就像一个魅力.设备电池太重了.

UPD:只是在一个地方收集所有答案(感谢@jba).

还可以使用"音频和Airplay"背景类别.设备锁定时,您可以播放"静音"或录制音频.这是非常耗能的方式,而且,一些操作系统中断,如电话,可以停止音频播放/录音和应用程序可以暂停.