2015-12-03 63 views
3

我們的服務器通過可用內容發送推送通知。 UIBackgroundMode允許推送通知。無論應用程序處於前臺還是後臺,按調試模式都可以正常工作(按Home按鈕)。在兩種情況下都調用委託didReceiveRemoteNotification。內容可用推送通知在未調試時不調用委託

但是,如果應用程序沒有連接到調試器並且在後臺,它永遠不會被調用。當我按下任何通知時,它會被調用,而不會按照它應該提前下載內容的時間。 是否可以使用開發證書代替生產?還有什麼其他原因會導致這樣的事情發生? (如果你想我提供任何片段來找到問題,請讓我知道)

任何幫助表示讚賞

+0

如果你殺了該應用(雙擊主頁按鈕,向上滑動應用),iOS將停止發送後臺通知。 – Avi

+0

當應用程序未連接到調試器或在後臺時,您是否收到通知? –

+0

是的,我收到通知,應用程序在後臺並沒有死亡。 – Sami

回答

2

**去的能力和打開後臺模式,然後選擇背景獲取,遠程通知選項。 如果你使用的是iOS 8然後用**

- (空)應用程序:(UIApplication的*)應用程序didReceiveRemoteNotification:(NSDictionary的*)USERINFO fetchCompletionHandler:(無效(^)(UIBackgroundFetchResult))completionHandler

方法,而不是

  • (無效)應用:(UIApplication的*)應用didReceiveRemoteNotification:(的NSDictionary *)USERINFO
+0

雖然已啓用背景模式,但我已經在使用此方法 – Sami

0
  • 你添加這些寄存器支撐線

  • (BOOL)申請:(UIApplication的*)應用程序didFinishLaunchingWithOptions:(NSDictionary的*)launchOptions { //註冊與APNS設備和指定通知類型的支持: [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

    return YES; }

//當registerForRemoteNotificationTypes方法完成調用: - (空)應用程序:(UIApplication的*)應用 didRegisterForRemoteNotificationsWithDeviceToken:(NSData的*)deviceToken {} - 現在生成您推送通知證書像.p12一樣,如果你想從客戶端檢查(沒有服務器),然後使用Pusher應用程序來生成通知。如果你的證書是有效的,那麼你會收到通知。 - 要生成通知證書,請按照http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1鏈接。

相關問題