2016-05-13 82 views
0

我想實現我的應用程序交互的本地通知,特別是通過實施此方法運行:的iOS:處理交互式通知時,應用程序無法在後臺

- (void) application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler 

的方法工作正常,除非用戶殺死應用程序,然後收到交互式本地通知。在那種情況下,沒有指示接收到本地通知動作(按鈕點擊)

我尋求幫助/建議2個方面

(1)有沒有人能夠確認/否認handleActionWithIdentifier不叫當應用程序沒有運行在所有(即甚至在後臺模式)。我瀏覽了相關的編程指南,我注意到很多語言都提到了​​和background模式,但沒有解決第三種可能性。然而,我正在尋找一些比'它對我不起作用'更堅實的東西來休息。在文檔中有什麼說這些應用程序被殺後應該或不應該工作? (2)我殺了我的應用程序後,如何登錄Xcode控制檯?每當我嘗試這個,我注意到,當我重新啓動應用程序時,我不再有日誌記錄。這很重要,因爲我需要證明這種或那種方式是否會在用戶殺死應用程序後收到來自用戶單擊的交互式通知消息。

我將不勝感激關於此事的任何和所有建議。謝謝。

回答

0

如果應用程序已終止,那麼當它通過通知啓動時,則會使用UIApplicationLaunchOptionsLocalNotificationKey的鍵調用didFinishLaunchingWithOptions。此密鑰的值是包含本地通知的有效負載的NSDictionary

當然,如果應用程序未運行,則無法從應用程序登錄Xcode控制檯。但是,如果您不通過Xcode運行應用程序,則可以通過轉到Window | Devices然後選擇連接的設備來觀看輸出。 如果您通過Xcode重新啓動應用程序,並且日誌記錄不存在,這可能是Xcode中的一個錯誤,我注意到最近版本的Xcode在顯示日誌記錄時遇到問題。如果發生這種情況請嘗試設備輸出。

+0

感謝您的有用信息。我尷尬承認我不知道如何看到我的iPhone上運行的NSLog語句不通過Xcode。 Window/Devices是什麼意思?我沒有看到它。 – helloB

+1

在Xcode的窗口菜單中,選擇設備,然後連接的iPhone的名稱應該出現在左側(以及Mac和模擬器列表)。當您單擊iPhone設備時,Xcode將顯示設備信息,並在底部顯示設備日誌控制檯。如果您看不到它,請查看屏幕底部是否有透露標籤(透露標籤是一個小框中的小指向上的箭頭)。 – Gruntcakes

+0

我確實嘗試了您的建議,但我在設備上列出的所有內容都是崩潰日誌。我正在嘗試查看NSLog類型的報表... – helloB

相關問題