iOS推送通知don';t添加到通知中心

iOS推送通知don';t添加到通知中心,ios,objective-c,push-notification,xamarin.ios,Ios,Objective C,Push Notification,Xamarin.ios,我在Xamarin.iOS平台上的iOS应用程序上实现了推送通知处理,但我的问题在iOS本机上也存在。 由于某些原因,当我的应用程序处于后台模式时,我需要处理推送通知,因此我在项目中使用后台模式和推送通知。此外,我还将值为1的可用内容键包含到有效负载的aps字典中。我还包括警报、徽章和声音键,因为我想为用户显示此推送通知并将其添加到通知中心 在后台模式下接收推送通知后(当应用程序未激活时): 1) 我使用DidReceiveEmotentification()方法处理推送通知接收。 2) 用户看

我在Xamarin.iOS平台上的iOS应用程序上实现了推送通知处理,但我的问题在iOS本机上也存在。
由于某些原因,当我的应用程序处于后台模式时,我需要处理推送通知,因此我在项目中使用后台模式和推送通知。此外,我还将值为1的可用内容键包含到有效负载的aps字典中。我还包括警报徽章声音键,因为我想为用户显示此推送通知并将其添加到通知中心

在后台模式下接收推送通知后(当应用程序未激活时):
1) 我使用DidReceiveEmotentification()方法处理推送通知接收。
2) 用户看到的通知将作为横幅从屏幕顶部向下滚动。
3) 我更改应用程序图标徽章计数器。
我的问题是,在所有这些操作之后,推送通知不会添加到通知中心。
据我所知,在didReceiveEmotentification()方法中处理推送通知后,iOS会将此通知标记为已处理,而不会将其添加到通知中心。作为可能的解决方案,我可以创建本地通知,对其进行调度,并将其添加到通知中心,但用户将再次看到通知作为横幅从屏幕顶部向下滚动,这并不好(看起来用户收到2个通知,但在通知中心仅显示1个)。

这种行为的实际原因是什么?如何解决此问题?

您可以尝试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];
}

您可以尝试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];
}

谢谢你们的回答。我发现了这种行为的原因-问题在于推送通知正文中的徽章键。此键具有0值,这就是为什么iOS将新通知标记为已读,并且没有添加到通知中心的原因。

感谢大家的回答。我发现了这种行为的原因-问题在于推送通知正文中的徽章键。此键的值为0,这就是为什么iOS将新通知标记为已读,并且没有添加到通知中心的原因