簡體   English   中英

如何處理未打開的推送通知(iOS,Swift)

[英]How to Handle Push Notifications that are not Opened (iOS, Swift)

所以我正在運行Swift應用程序並使用Parse來處理我的推送通知。 到目前為止,一切都按預期工作。

我通過推送通知發送JSON對象,並從收到的數據更新本地數組。 我通過application: didReceiveRemoteNotification處理數據application: didReceiveRemoteNotification並通過userInfo發送字典。

當應用程序在前台打開時,這非常有效。 當應用程序在后台並且用戶在橫幅中顯示推送通知時,它也可以正常工作。

根據application: didReceiveRemoteNotification處理JSON對象application: didReceiveRemoteNotification代碼。

但是,當用戶未打開通知時, application: didReceiveRemoteNotification不會運行,並且我的本地數組不會更新。

如何確保每次發送通知時都會處理JSON對象並相應地更新我的本地數組?

在用戶單擊它並且調用didReceiveRemoteNotificationdidFinishLaunchingWithOptions方法之前,您無法從通知中獲取響應或JSON對象。

從ios8,您可以設置交互式通知,這對於直接從通知進行交互非常有用,無需在前台打開應用程序。

這里它的教程互動的通知。

願這對你有所幫助。

這通常是不正確的方法,您不應該依賴推送通知,用戶可能會關閉它們或由於某些原因它們可能無法交付。 相反,您應該始終從服務器獲取新數據。 閱讀Apple推送通知服務指南

重要提示 :發送通知是“盡力而為”,不能保證。 它不是為了向您的應用提供數據,而是為了通知用戶有新數據可用

application:didReceiveRemoteNotification:fetchCompletionHandler: 

即使用戶不會點擊或與通知交互,此方法也會調用。

當遠程通知到達時,系統調用application:didReceiveRemoteNotification:fetchCompletionHandler: method。 通知通常表示新信息的可用性。 在您的app delegate方法中,您可能會開始從服務器下載新數據,以便您可以更新應用程序的數據結構。 您還可以使用通知來更新用戶界面。 -蘋果公司。

應用程序的狀態必須位於UIApplicationStateActiveUIApplicationStateBackground

如果應用程序的狀態是UIApplicationStateInactive則無法執行任何操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM