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

10

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

我注意到Rise和The Rock Clock需要您保持应用程序处于前台(如下图所示)。我读到他们通过禁用多任务处理UIApplicationExitsOnSuspend实现了这一点。

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

谢谢

输入图像描述

2个回答

7

要实现这个功能并没有太多可行的方法,而且没有一种是完美的。

  1. 您可以安排UILocalNotification或UNNotificationRequest。这种方式允许您创建带有预定义声音的闹钟。但由于声音持续时间限制和无法播放流,因此并不实用。
  2. 使用后台配置的URLSession。根据文档,您可以安排请求。仅适用于iOS 11及以上版本,不能保证请求将被执行。

  3. 使用VoIP或静默推送。这些类型的推送在设备接收到时有可能在后台启动应用程序。虽然这种方法有点棘手,但可以完成任务。如果用户没有互联网连接,则无法使用此方法。

  4. 将应用程序保持在前台。最简单的方法,效果很好。但会对设备电池造成很大负担。

更新:为了将所有答案集中在一个地方(感谢@jba)。

还有一种可能性是使用“音频和Airplay”后台类别。您可以在设备锁定时播放“静音”或录制音频。这种方法非常耗能,而且一些操作系统中断,如电话呼叫,可能会停止音频播放/录制并暂停应用程序。


2

苹果不会给你太多实现这一点的方法,但你所拥有的几种方法都是很好且相当精确地文档化的。 对于你的应用程序,我建议选择“音频和Airplay”选项,因为它将允许你在后台播放和/或记录音频。然后你需要努力找到合适的方式来解释为什么要这样做以及对用户的好处是什么......最终,这个功能将让你的应用程序一直保持活动状态,直到触发警报,然后播放你的音频文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接