iOS中的闹钟应用程序

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

现在,在UILocalNotification中,首先我们通过选项“Close”和“View”来获得Notification Alert。 如果用户点击“查看”,那么我的委托收到application:didReceiveLocalNotification:消息,并发出警报声音。

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

我同意大卫。 iOS内置的闹钟应用程序从苹果获得特殊的待遇,在背景中,声音> 30秒。 它似乎是使用一些私人的API,使它发声更长的时间,即使是在后台或closures。 这不适用于苹果以外的其他应用程序,所以甚至不要尝试与之竞争。 如果您在App Store购买了所有闹钟应用程序(又名:Apple认可的)并逐一尝试,您会发现它们在闹钟最重要的function中缺less内置的闹钟应用程序:即“Sounding很长一段时间,在任何状态下,应用程序处于(活动,后台或closures)状态“

模拟背景警报的最佳方法是使用UILocalNotification 30秒。 如果你真的想唤醒你沉睡的人,计划在六十秒之内将这些通知中的五个或者类似的东西点燃,希望在第五次通知结束之前起床。

注意,用这种方法,你的用户错过了闹钟,当他们醒来的时候,他们的屏幕上会出现5个popup窗口(如果在一个闹钟popup窗口中醒来的话,那么他们会花费他们早上closures的第一秒钟那些popup窗口 – 不是最好的用户体验。

结论:闹钟应用程序仅适用于前台使用。 最好的报警应用程序可以在任何状态下工作是由苹果公司制造的内置时钟应用程序。

此警报行为不适用于iOS应用程序。 您可以创build本地通知并为其添加声音,但声音的长度是有限的。 内置报警声音不能连续播放。

一种select是重复警报。 所以你的应用程序会发出警报,等待一段时间,然后发送另一个。 您重复指定次数或直到用户与您的应用进行交互。 我不认为这将提供一个很好的用户体验,所以我不推荐它。

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

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

请注意,本地通知声音只能播放30秒或更less。 你可以在这里获得更多的信息 。

如果启用“audio,AirPlay和图片中的图片”和“远程通知”后台模式,您可以使用静默推送通知来唤醒设备,然后开始播放audio,只要您播放audio不会像往常那样被限制为30秒来回复通知。 如果应用程序已被用户手动杀死,这将不起作用,但如果用户这样做,您可以发送本地通知,要求他们重新打开应用程序。