如何在 ios Objective c 中检查推送通知是不是在后台模式下接收?

Posted

技术标签:

【中文标题】如何在 ios Objective c 中检查推送通知是不是在后台模式下接收?【英文标题】:How to check Push Notification is Receive in background mode in ios objective c?如何在 ios Objective c 中检查推送通知是否在后台模式下接收? 【发布时间】:2017-07-15 08:43:46 【问题描述】:

如何在不点击目标 c 通知栏中的推送通知警报的情况下获取推送通知按摩数据

【问题讨论】:

不点击是什么意思?您是在谈论静默通知吗?如果是这样,我建议您查看here 【参考方案1】:

检查此代码,希望对您有所帮助

    -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
        NSLog(@"%@", [userInfo description]);
        if (application.applicationState == UIApplicationStateBackground)
            
              // Write your code for Background State
             
        else if (application.applicationState == UIApplicationStateActive)
           
              // Write your code here for Active state        
           
        else if (application.applicationState == UIApplicationStateInactive)
           
              // Write your code for Inactive State

           

       

【讨论】:

【参考方案2】:

仅当您实施 VoIP 推送通知服务时,您才可以在不点击通知警报的情况下收到推送通知消息。 [VoIP 推送服务]

https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-ios/OptimizeVoIP.html

如果您使用 Apple PushKit 框架,您将在以下委托中获取消息数据:

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type  NSDictionary *userInfo = payload.dictionaryPayload;NSLog("Your JSON here: %@",userInfo);

【讨论】:

以上是关于如何在 ios Objective c 中检查推送通知是不是在后台模式下接收?的主要内容,如果未能解决你的问题,请参考以下文章

在Objective C(iOS)中向远程推送通知添加消息

Objective C: iOS 14 如何做网络隐私权限检查

Objective-C:如何正确处理 iOS 推送通知?

Objective-C 中的 iOS 10 富媒体推送通知(媒体附件)

对故事板和以编程方式推送 ios Objective C 感到困惑

如何检查用户之前是不是在 iOS 中查看过推送通知权限警报视图?