繁体   English   中英

iOS中的闹钟应用程序

[英]Alarm clock app in iOS

我必须为iPhone创建一个闹钟应用程序,用户可以在其中设置闹钟时间和声音。 在这样做时,我使用了UILocalNotification来引发警报。

现在,在UILocalNotification中,首先我们通过选项“关闭”和“查看”获得通知警报。 如果用户点击“查看”,则我的代理人会收到application:didReceiveLocalNotification: message并播放警报声音。

但在系统本机警报应用程序中,我们看不到通知警报; 它只是直接播放警报声。 如何让我的应用程序使用此行为?

我同意大卫的观点。 iOS内置闹钟应用程序获得Apple的特殊处理,在后台播放时声音> 30秒。 它似乎使用一些私有API使它在较长时间内发出声音,即使它在后台或关闭时也是如此。 这不适用于在Apple之外构建的其他应用程序,所以甚至不要尝试与它竞争。 如果您购买App Store中的所有闹钟应用程序(又名:Apple批准)并逐一尝试,您会发现它们在警报的最重要功能中缺少内置警报应用程序:即“Sounding”在很长一段时间内,应用程序处于任何状态(活动,背景或关闭)“

模拟背景警报的最佳选择是使用UILocalNotification 30秒。 如果你真的想要唤醒沉重的睡眠者,安排将这些通知中的五个发出六十秒或类似的东西,希望他们会在第五次通知结束前醒来。

请注意,使用此方法,未命中警报的用户在唤醒时会在屏幕上显示5个弹出窗口(如果他们在其中一个警报弹出窗口中醒来,则会减少),因此他们将花费他们早上关闭的第一秒钟那些弹出窗口 - 不是最好的用户体验。

结论:闹钟应用程序仅适用于前台使用。 适用于任何州的最佳闹钟应用程序是由Apple制造的内置时钟应用程序。

iOS应用程序无法使用此警报行为。 您可以创建本地通知并为其添加声音,但声音长度有限。 您无法连续播放声音,例如内置闹钟。

一种选择是重复警报。 因此,您的应用程序将发送警报,等待一段时间再发送另一个。 您重复指定的次数或直到用户与您的应用互动。 我不认为这会提供出色的用户体验,所以我不推荐它。

我很确定你可以拥有自己的自定义本地通知声音。

示例代码localNotif.soundName = @"alarmsound.caf";

注意本地通知声音必须仅为30秒或更短时间才能播放。 你可以在这里获得更多信息

如果您启用“音频,AirPlay和画中画”和“远程通知”后台模式,您可以使用静音推送通知来唤醒设备,然后开始播放音频,只要您正在播放音频,不会像往常一样响应通知30秒。 如果应用程序已被用户手动杀死,则此操作无效,但如果用户这样做,您可以发送本地通知,要求他们重新打开应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM