2014-01-16 63 views
0

獲取SIP通知後,如何在應用程序處於後臺時使用UILocalNotification將其顯示給用戶。iOS UILocalNotification用於輸入SIP通知

應用程序的Background mode is ->voip它是always alive in background

只是它在後臺撥打sip電話後才能顯示通知。

+0

對不起,我不能讓你you..can更復雜的問題嗎? – iPatel

回答

0

有點難以分辨您的問題,但我可以告訴您,UILocalNotification將向用戶呈現其本身,完全按照「本地和推送通知編程指南」中的Apple's documentation>「處理本地和遠程通知」。具體做法是:

  1. 如果您的應用程序在後臺運行或已終止,iOS版將顯示您使用UILocalNotification創建&配置時所定義的屬性本地通知。
  2. 如果您的應用程序處於前臺,iOS將不會自動顯示您的通知 - 您必須實施UIApplicationDelegate的-application:didReceiveLocalNotification:,並根據需要呈現(或不存在)通知。

不要忘了忘記使用-scheduleLocalNotification:方法實際安排您的UILocalNotification與 - [UIApplication sharedApplication]。只需創建UILocalNotification將不會執行任何操作。

而且,我認爲即使對於本地通知,您也需要使用UIApplication的-registerForRemoteNotificationTypes:

正如與本地通知無關,因爲我們還在使用VOIP背景,請注意,僅僅因爲您將背景模式設置爲VOIP,並不意味着您的應用將始終處於運行狀態。以下任何一種情況都將導致iOS終止您的應用程序:

  • 您使用UDP作爲您的VOIP套接字。 iOS似乎不支持使用UDP進行後臺處理,僅支持TCP。
  • 如果您的VOIP套接字連接在300秒內收到超過30個「醒來」。
  • 如果您的VOIP套接字已斷開,您必須在嘗試重新連接時請求後臺執行時間。但是如果在iOS提供的背景時間之後無法重新連接,應用程序將被終止。

因此,您應該確認(通過跟蹤或其他),您的VOIP信號通道實際上在您測試本地通知時在後臺存活。

總之,你有很多的調查&故障排除做:)