objective-c - iOS8 如果应用程序位于前台则禁用推送通知

标签 objective-c swift ios8 push-notification appdelegate

我的应用程序委托(delegate)中有一个 didReceiveRemoteNotification 处理程序。

即使我返回一个空代码块,我的应用程序也会收到推送通知并在应用程序运行时将其显示给用户。

我想要当应用程序在后台时推送通知,而不是当它在前台运行时。

我已经阅读了十几篇关于 iOS8 通知的 SO 帖子和文档,以及有关通知的 WWDC2014 视频,但我仍然不知道如何在应用程序位于前台时防止通知模式警报。

如果您知道任何方法,请告诉我。

最佳答案

您可以在didReceiveRemoteNotification中检查应用程序状态以实现您的功能。如果应用程序状态处于事件状态,则不要执行您的代码。

如需更多引用,请查看下面的代码。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{

    if(application.applicationState == UIApplicationStateActive) {
         // Do nothing
    }else{
         // Do your code here
    }
}

关于objective-c - iOS8 如果应用程序位于前台则禁用推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29044930/

相关文章:

带有附件 View 的 iOS 8 自调整单元格

打开时出现 Swift 和 Sqlite3 错误

iphone - iOS 7 中的 UIImagePickerControllerSourceTypePhotoLibrary 无法正常工作

ios - 从 UIWebView 获取加载的图片

ios - 未捕获的异常 'NSInternalInconsistencyException',原因 : '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'

iOS后退按钮行为: double back

objective-c - 如何在 Xcode 的调试器窗口中禁用程序集?

xcode - 在本地部署 Swift OS X 应用程序?

swift - 你如何获得 couchbase 数据库的大小

objective-c - Testflight 没有完全安装