2013-12-18 56 views
0

我需要顯示本地通知,並讓它保持在屏幕上的時間比默認的4-5秒長,最好是直到應用程序本身刪除它。我看到其他應用程序(例如潘多拉)設法做到這一點(可能是推送通知?),但我可以找到UILocalNotificationUIApplication方法如presentLocalNotificationNow:scheduleLocalNotification:等沒有持續時間屬性。the documentation也沒有任何我發現的教程解決了顯示時間問題。這是通過本地通知無法完成的嗎?是否可以更改UILocalNotification的顯示持續時間?

+0

您是在談論應用程序處於前臺或應用程序處於後臺還是屏幕鎖定時的通知? – Spectravideo328

+0

我的意思是當應用程序在後臺(或屏幕鎖定)。本地通知不會顯示在前臺。 –

+0

正確。希望確保我們使用相同的術語。當在鎖定屏幕上發生通知時,它會一直保留到用戶解鎖屏幕(主屏幕按鈕或通知刷卡)。那麼你是否只是指當應用程序在後臺但設備未被鎖定時的通知? – Spectravideo328

回答

2

一對夫婦的解決方案,在這裏,我不會推薦之一:

1您可以從用戶的要求去設置>通知中心>您的應用程序。並將警報樣式從Banner(默認)更改爲Alerts。這將向用戶呈現類似於當應用處於前景時呈現的警報的警報。用戶將不得不關閉警報而不是剛剛出現/消失的橫幅樣式通知。除非這是一個公司應用程序,並且您有用戶購買,否則我不會走這條路線,因爲這可能會讓用戶煩惱。

2-我測試了聲音剪輯方法,並且是的,如果您用剪輯<發出通知30秒;通知將保持在屏幕的頂部(直到聲音片段播放完畢)。話雖如此,如果用戶點擊任何音量按鈕(例如,以減少聲音),即使在結束之前,通知立即被解散!我想盡管通知的目的是溫和的提醒,並且持續時間超過典型的4-5秒,並且可能會惹惱用戶(或者用戶可能認爲有東西卡住,電話凍結等等)。 )。這裏是代碼無論如何:

UILocalNotification *howLongCanANotificationLast = [[UILocalNotification alloc]init]; 
[email protected]"I am a notification"; 
[email protected]"musicfilename.mp3"; 
[[UIApplication sharedApplication] presentLocalNotificationNow:howLongCanANotificationLast]; 

希望這會有所幫助。

+1

謝謝。我認爲最重要的是,如果蘋果想讓你搞不清這些彈出窗口的持續時間,他們會給你一些顯而易見的方式來做到這一點,任何變通可能會導致你的批准。 –

+1

嘿,我有一個30秒的聲音,但通知5秒後消失可能是什麼問題? – hariszaman

+2

同樣的問題正在發生在我身上。本地通知不遵守iOS 10.2中的聲音持續時間。 –

相關問題