簡體   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