[英]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對象並相應地更新我的本地數組?
在用戶單擊它並且調用didReceiveRemoteNotification
或didFinishLaunchingWithOptions
方法之前,您無法從通知中獲取響應或JSON對象。
從ios8,您可以設置交互式通知,這對於直接從通知進行交互非常有用,無需在前台打開應用程序。
這里它的教程互動的通知。
願這對你有所幫助。
這通常是不正確的方法,您不應該依賴推送通知,用戶可能會關閉它們或由於某些原因它們可能無法交付。 相反,您應該始終從服務器獲取新數據。 閱讀Apple推送通知服務指南 :
重要提示 :發送通知是“盡力而為”,不能保證。 它不是為了向您的應用提供數據,而是為了通知用戶有新數據可用
application:didReceiveRemoteNotification:fetchCompletionHandler:
即使用戶不會點擊或與通知交互,此方法也會調用。
當遠程通知到達時,系統調用application:didReceiveRemoteNotification:fetchCompletionHandler:
method。 通知通常表示新信息的可用性。 在您的app delegate方法中,您可能會開始從服務器下載新數據,以便您可以更新應用程序的數據結構。 您還可以使用通知來更新用戶界面。 -蘋果公司。
應用程序的狀態必須位於UIApplicationStateActive
或UIApplicationStateBackground
。
如果應用程序的狀態是UIApplicationStateInactive
則無法執行任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.