根據apple文檔,我們可以通過檢查應用程序狀態變量是否處於非活動狀態(link)來識別用戶點擊通知。檢測用戶點擊通知
的iOS注:在iOS中,您可以決定一個應用程序啓動 當用戶敲擊動作按鈕或的結果 通知是否被 傳遞到已經運行的應用程序檢查應用程序的狀態。在代理執行 的應用程序中:didReceiveRemoteNotification:或 application:didReceiveLocalNotification:方法,獲取 applicationState屬性的值並對其進行評估。如果值爲 UIApplicationStateInactive,用戶點擊操作按鈕;如果 值爲UIApplicationStateActive,那麼當 收到通知時,應用程序是最前面的。
但可以看到,那裏是一個系統警報(通過系統警報,我的意思是在其通過的iOS控制的應用的前景呈現的警報視圖)在前景中的使用情況和應用程序是在非活動狀態狀態(當一個「系統警報」在視圖中時,通過將應用程序的application state設置爲UIApplicationStateInactive),iOS後臺的應用程序處於非活動狀態,但用戶仍然能夠在屏幕上看到該應用程序的內容。請參閱附件下方:
在這種狀態下,如果應用程序收到通知時,它會表現出好像用戶點擊的通知。有沒有解決這個用例的解決方案?
非常混亂。 「前臺系統警報和應用程序處於非活動狀態」的意思是什麼? –
@HinataHyuga在屏幕截圖中,我有一個系統警報(gmail應用程序通知警報)的例子,它由iOS控制,而不是背後的應用程序。此時,iOS會將應用程序視爲處於非活動狀態(應用程序的應用程序狀態將設置爲非活動狀態)。每次應用程序:didReceiveLocalNotification:當你得到通知時調用方法調用 – Shashank
。 – iPatel