2012-02-25 70 views
20

我必須爲iPhone創建一個鬧鐘應用程序,用戶可以在其中設置鬧鐘時間和聲音。 這樣做,我已經使用UILocalNotification來發起警報。iOS中的鬧鐘應用程序

現在,在UILocalNotification中,首先我們通過選項「Close」和「View」來獲得Notification Alert。如果用戶點擊「查看」,則我的代理人收到application:didReceiveLocalNotification:消息並播放警報聲音。

但是在系統原生報警應用程序中,我們看不到通知警報;它只是直接播放鬧鐘聲音。我如何讓我的應用程序使用這種行爲?

回答

3

我很肯定你可以有你自己的自定義本地通知聲音。

實施例代碼localNotif.soundName = @"alarmsound.caf";

注本地通知聲音將必須的僅30秒或更少進行播放。您可以獲得更多info here

5

此警報行爲不適用於iOS應用程序。您可以創建本地通知併爲其添加聲音,但聲音長度有限。您無法連續播放聲音,例如內置鬧鈴。

一種選擇是重複警報。所以你的應用會發送一個警報,等待一段時間然後發送另一個。您重複指定次數或直到用戶與您的應用進行交互。我不認爲這會提供很好的用戶體驗,所以我不推薦它。

+0

嗨, 我偶然發現了這個,一邊尋找別的東西。 我們可以指定一個自定義的時間間隔來重複這些警報,當應用程序已經背景 – heyjii 2012-06-21 13:34:51

33

我同意戴維。 iOS內置的鬧鐘應用程序從Apple獲得特殊待遇,在背景中聲音大於30秒。它似乎正在使用一些私人API來使它在較長時間內響起,即使它在後臺或關閉狀態。這不適用於Apple以外構建的其他應用程序,因此不要嘗試與其競爭。如果您購買App Store中的所有鬧鐘應用程序(又名:Apple認可的)並逐一嘗試,您會發現它們缺少內置鬧鐘應用程序,它最重要的鬧鐘功能是:「Sounding很長一段時間,應用程序處於任何狀態(活動,後臺或關閉)「

模擬背景警報的最佳方法是使用UILocalNotification 30秒。如果你真的想喚醒沉睡者,計劃在六十秒內發起五次通知或類似的事情,希望他們在第五次通知結束之前醒來。

請注意,使用此方法時,未命中鬧鈴的用戶在醒來時會在其屏幕上顯示5個彈出窗口(如果在某個鬧鈴彈出窗口中醒來的話,他們的消費將減少),因此他們將花費其第一秒他們早上關閉那些彈出窗口 - 不是最好的用戶體驗。

結論:鬧鐘應用程序僅適用於前臺使用。最好的鬧鐘應用程序,可以在任何狀態下工作的是蘋果公司生產的內置時鐘應用程序。

+6

我很難找到這一點。 – 2013-02-19 10:30:29

+1

[iHome + Sleep](https://itunes.apple.com/de/app/ihome+sleep-alarm-clock-app/id346249053?mt=8)曾經有過這個,但是在2.9版中他們用評論「的變化,以符合iOS合規性」......因此,雖然技術上可行,但Apple不希望應用程序使用此功能。恥辱。我會留下2.8 – 2013-02-22 04:16:46

+0

我對此很傷心。最難過的。 – 2017-10-04 06:32:00

0

如果您啓用「音頻,AirPlay和圖片中的圖片」和「遠程通知」後臺模式,您可以使用靜默推送通知來喚醒設備,然後開始播放音頻,並且只要您「重新播放音頻時,您不會像平常那樣將響應時間限制爲30秒。如果應用程序已被用戶手動殺死,這將不起作用,但如果用戶這樣做,您可以發送本地通知,要求他們重新打開該應用程序。

相關問題