簡體   English   中英

iOS版; 當應用未運行或在后台運行時,推送通知不起作用

[英]iOS; Push notification is not work when the app is not running or in background

我檢測到來自APNS的推送通知時遇到問題。

如果應用未運行或在后台運行時,APNS發出了推送通知,

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

是行不通的。

而且,當我回到前台但未從通知中心選擇推送通知消息時,則無法使用。

我怎么解決這個問題?

我正在iOS 6.13和iOS 7.0.4中測試該應用程序。

謝謝你的幫助。 :)

實際上,通知的第一個接收者是系統,而不是您的應用。

如果您的應用程序不在前台,則在您點擊通知使您的應用程序再次成為前台之前,將永遠不會調用該應用程序的application:didReceiveRemoteNotification:fetchCompletionHandler

當推送通知到達並且用戶單擊“ cancel ”時, your app has no way to read that push notification again 您必須實現單獨的功能(最有可能在server-side ),以獲取發送到此設備的通知列表。

從Apple文檔中:

如果您的應用支持遠程通知后台模式,請實施此方法。

這意味着您使用的方法側重於后台任務。 並且僅在iOS 7.0之后可用。

我建議您使用application:didReceiveRemoteNotification:

從Apple文檔中:

如果該應用程序正在運行並收到遠程通知,則該應用程序將調用此方法來處理通知。

暫無
暫無

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

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