iOS中的闹钟应用程序

时间:2012-02-25 14:59:14

标签: iphone ios uilocalnotification

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

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

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

4 个答案:

答案 0 :(得分:34)

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

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

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

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

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

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

注意本地通知声音只需要30秒或更短时间即可播放。您可以获得更多info here

答案 3 :(得分:0)

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