【问题标题】:iOS Push Notifications don't adds to Notification CenteriOS 推送通知不会添加到通知中心
【发布时间】:2018-01-20 22:21:30
【问题描述】:

我在 Xamarin.iOS 平台上的 iOS 应用程序上实现了推送通知处理,但我的问题也适用于 iOS 本机。
由于某些原因,当我的应用程序处于后台模式时,我需要处理推送通知,因此我在我的项目中使用了 Background ModePush Notification。此外,我还将值为 1content-available 键包含到有效负载的 aps 字典中。我还包括 alertbadgesound 键,因为我想向用户显示此推送通知并将其添加到通知中心。

在后台模式下收到推送通知后(当应用程序未处于活动状态时):
1) 我使用 DidReceiveRemoteNotification() 方法处理推送通知接收。
2) 用户看到通知从屏幕顶部向下滚动为横幅。
3) 我更改了应用程序图标徽章计数器。
我的问题是,在所有这些操作之后,推送通知不会添加到通知中心
据我了解,在处理 DidReceiveRemoteNotification() 方法中的推送通知后,iOS 将此通知标记为 handled 并且不会将它们添加到通知中心。作为可能的解决方案,我可以创建本地通知,安排它们并将其添加到通知中心,但用户将再次看到通知从屏幕顶部滚动为横幅,这并不好(看起来用户收到 2 个通知,但通知中心仅显示 1 个)。
这种行为的实际原因是什么?我该如何解决这个问题?

【问题讨论】:

    标签: ios objective-c push-notification xamarin.ios


    【解决方案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];
    }
    

    Apple VoIP Push Service

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2022-01-12
        • 2021-08-03
        • 2014-03-06
        • 1970-01-01
        • 2020-08-22
        • 2018-05-06
        • 2015-12-11
        • 2018-12-17
        • 1970-01-01
        相关资源
        最近更新 更多