iOS - 在后台应用程序时在 UI 顶部显示一致的警报(就像个人热点一样)

标签 ios objective-c

我正在创建一个闹钟应用,该应用需要用户在应用内执行一些操作才能关闭闹钟。下面是另一个应用程序 Sleep Cycle 在您打开闹钟并按下主屏幕(即应用程序背景)时执行的操作的图片。

Here is an image link (我还不能发布图片,尽管我今天多次尝试回答人们的问题,但没有代表)我想要重新创建的效果。

那些使用过 iPhone 的个人热点并连接了设备的人会注意到它具有相同的效果,通知会出现在 UI 的顶部 - 将所有内容向下推大约 20-40 点。这对于闹钟应用来说是非常可取的,因为它鼓励用户将应用保持在前台,以便在醒来时可以轻松进入应用(而不是依赖本地通知允许的 30 秒声音窗口)

有没有人对如何实现此功能有任何想法。我假设它必须去某个地方:

- (void)applicationDidEnterBackground:(UIApplication *)application

AppDelegate 中的标签,但我不确定我到底需要阅读什么。因此,如果有人有一些相关开发人员文档的链接,那也会非常有帮助。

非常感谢您的帮助, 瑞安

最佳答案

有一些内置的“后台模式”可以根据应用程序在后台提供的功能更改状态栏的外观。当应用程序在后台录制音频时,您识别的那个(红色状态栏)会被触发。我认为 Sleep Cycle 的行为就好像它只是为了这个目的而录制音频一样。其他后台模式包括 VoIP(我认为它使用蓝色状态栏)。查看Apple's documentation on supporting these various background modes

在您的情况下,您希望将 audio 添加到 Info.plist 文件中的 UIBackgroundModes 属性。

但请注意,如果 Apple 假装执行其中一项后台任务但实际上没有执行,那么 Apple 在审核期间拒绝该应用程序并不是没有道理的。例如,过去曾有一些应用程序尝试连续播放无声音频片段,以便在后台保持清醒 - 不用说 Apple 对此很明智,并且有问题的应用程序不得不改变其行为。

关于iOS - 在后台应用程序时在 UI 顶部显示一致的警报(就像个人热点一样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21154539/

相关文章:

objective-c - CoreData 是否始终尊重 returnObjectsasFaults?

ios - 如何正确覆盖 reloadRowsAtIndexPaths :withRowAnimation?

ios - TableView 重新加载数据后 TableView 单元格布局不正确

ios - 如何一次弹出两个/三个 View watchKit 应用程序?

ios - 如何在 xcode 6 中查看汇编代码

objective-c - osx 应用程序红色橙色绿色图标

ios - 使用自动布局隐藏UIView时以编程方式添加约束

ios - 哪个类用于实现 GKLocalPlayerListener 协议(protocol)

ios - YouTube 嵌入式播放器介绍

android - 如何在 Firebase 云消息传递 (FCM) 中使用深度链接