2017-08-12 94 views
1

我在Xamarin.iOS平臺上實現了iOS應用程序的推送通知處理,但是我的問題實際上也適用於iOS本機。
我需要處理推送通知,當我的應用程序處於後臺模式出於某種原因,所以我打開背景模式推送通知在我的項目中使用。此外,我還將內容可用密鑰的值爲納入有效負載的aps字典中。我還包括提醒,徽章聲音鍵,因爲我想顯示此用戶的推送通知並將其添加到通知中心。iOS推送通知不會添加到通知中心

如在背景模式推送通知接收(當應用程序不活動的)後的結果:
1)I處理使用DidReceiveRemoteNotification()方法推送通知接收。
2)用戶看到通知從屏幕頂部向下滾動爲橫幅。
3)我更改應用程序圖標徽章計數器。
我的問題是推送通知在所有這些操作後都不會添加到通知中心
正如我在DidReceiveRemoteNotification處理推送通知後才明白()方法標記的iOS類似該通知處理,不將它們添加到通知中心。作爲可能的解決方案,我可以創建本地通知,安排它們,並將其添加到通知中心,但用戶將再次從屏幕頂部看到通知滾動爲橫幅,並且不好(它看起來像用戶獲得2個通知,但通知中心只顯示1個)。
這種行爲的實際原因是什麼?我該如何解決這個問題?

回答

0

您可以嘗試VoIP推送通知服務。

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type 
    NSDictionary *payloadInfo = payload.dictionaryPayload; 
    [self showLocalNotificationWithInfo: payloadInfo]; 
} 

- (void) showLocalNotificationWithInfo:(NSDictionary *)infoDict{ 
    UILocalNotification* localNotification = [[UILocalNotification alloc] init]; 
    localNotification.fireDate = [NSDate date]; 
    localNotification.alertBody = @"Your title message"; 

    localNotification.soundName = @"YourSoundFileName.mp3"; 
    localNotification.userInfo = userInfo; 
    localNotification.fireDate = [NSDate date]; 
    localNotification.timeZone = [NSTimeZone systemTimeZone]; 
    localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 
} 

Apple VoIP Push Service

0

謝謝你們對你的答案。我發現這種行爲的原因 - 問題是徽章鍵在推送通知正文。此關鍵字的值爲值,這就是爲什麼iOS標記新通知的原因,他們沒有添加到通知中心。