CloudKit推送通知,应用程序在后台运行

2024-03-24

iOS8.2-app在后台运行时,不会收到任何推送通知,

而如果它在前台运行,它可以很好地接收推送通知。

知道发生了什么事吗?

运行于CloudKit Development模式,订阅用于添加、编辑和删除,并使用以下内容didReceiveRemoteNotification:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Push received.");

    NSDictionary * apsDict = [userInfo objectForKey:@"aps"];

    NSString * alertText = [apsDict objectForKey:@"alert"];

    //TODO: get the record information from the notification and create the appropriate message string.

    if(application.applicationState == UIApplicationStateActive) {
        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Notification" message:alertText delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
        [alert show];
    } else {

        if([application currentUserNotificationSettings].types & UIUserNotificationTypeAlert) {
            UILocalNotification * localNotification = [[UILocalNotification alloc] init];
            localNotification.alertBody = NSLocalizedString(@"alert body", nil);;
            localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:2];
            [application presentLocalNotificationNow:localNotification];
        }
    }

    completionHandler(UIBackgroundFetchResultNoData);
}

当您进入应用程序设置功能时,是否为后台模式启用了远程通知?

See this screenshot: enter image description here

除此之外,您是否注册了所有通知类型,如下所示:

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert | .Badge | .Sound, categories: nil))
    application.registerForRemoteNotifications()

在您的订阅中,您是否为 CKNotificationInfo 发送alertBody 或alertLocalizationKey?如果您这样做,那么您将已经从操作系统收到通知,并且无需设置本地通知。

更新:正如下面Porton提到的,这个问题通过填写alertBody解决了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CloudKit推送通知,应用程序在后台运行 的相关文章

  • 警告:所有应用程序都应包含armv7架构(当前archs =“arm64”)

    警告 所有应用程序都应包含 armv7 架构 当前架构 arm64 我读过其他关于早期版本的 XCode 的文章 但这些示例都没有帮助解决这个问题 看来无论我在设置中添加什么 如下所示 都会有帮助 我仍然遇到同样的错误 项目和目标设置看起来
  • 个人帐户开发者之间的 Apple 开发/分发证书

    我一直在到处寻找有关处理证书的正确答案 想象一下以下帐户 Joe拥有个人 Apple 帐户 但他根本不会编码 他只是发布了该应用程序并将其称为自己的 Bob还有一个个人 Apple 帐户 Bob 是一位编码专家 Joe 付费让他开发他的第一
  • 苹果推送通知在生产中不起作用

    我们完全陷入困境 请帮忙 我和我的团队制作了一个 iPhone 应用程序 这是我们第一次在 iOS 上尝试 一切都很好 直到我们提交应用程序并在应用程序商店上可用为止 推送通知服务无法正常工作 我在网上搜索并尝试根据人们的建议仔细检查我们的
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • NSURLConnection 的 URL 文件大小 - Swift

    我想在下载之前从 url 获取文件大小 这是 obj c 代码 NSURL URL NSURL URLWithString ExampleURL NSMutableURLRequest request NSMutableURLRequest
  • 有没有办法在iOS模拟器上使用苹果的Touch ID(指纹扫描仪)?

    我正在开发一个需要 Touch ID 身份验证的应用程序 那么有什么方法可以在模拟器中使用 Touch ID 指纹扫描仪 另外 请分享一些使用 LocalAuthentication 框架的示例代码 XCODE 7 beta支持在iPhon
  • iPhone 6模拟器,隐藏键盘问题

    iPhone 6 是否有一些新的方式 屏幕外 硬按钮 来重新打开隐藏的软键盘 我没有可以测试的物理设备 但我在 iPhone 6 模拟器中看到了一些在 iPad 或 iPhone 5 中看不到的新东西 iPhone 6 在横向视图中现在有一
  • 以点值检测 iPhone 6/6+ 屏幕尺寸

    鉴于新发布的 iPhone 6屏幕尺寸 http www apple com iphone compare iPhone 6 1334h 750w 2x in points 667h 375w iPhone 6 1920 1080 3x i
  • SKLightNode 无法在真实设备上工作 [iPhone 5]

    我建立了一个简约的项目here http override apps com wp content uploads iOS8 Test zip它只是添加一个红色方块 然后点击屏幕后 一个光源照亮它 在模拟器上它运行良好 但在我的 iPhon
  • 不需要的边距 UIPopoverController

    当我在视图中呈现弹出框并将其放置在视图的一侧时 总是有一个小边距 导致弹出框不会粘在一边 UIViewController vc self getViewController popover fromStoryboard Main UIPo
  • iOS后台获取时间限制崩溃

    我已经设置了背景获取 使用大纲NSScreencast 第 92 集 http nsscreencast com episodes 92 background fetch BOOL application UIApplication app
  • 从后台唤醒时应用程序会重新启动

    iOS 大师您好 我已经广泛搜索了答案 但找不到答案 我打赌对我的问题的第一个答复将是另一个类似的问题 但我找不到它 不管怎样 我的问题是我正在运行一个简单的地图应用程序 用户可以在地图上放置图钉 并在放置的图钉周围有一个自定义的圆圈覆盖
  • 将文件传递给活动作业/后台作业

    我通过标准文件输入接收请求参数中的文件 def create file params file upload Upload create file file filename img png end 但是 对于大型上传 我想在后台作业中执行
  • Corebluetooth 方法 scanForPeripheralsWithServices 在任何设备中都不适用于我。所有 github 示例均不适用于我的设备 ipod touch

    我正在开发蓝牙相关的应用程序 但我没有取得任何成功 在我的应用程序中 我想将我的 iDevice 与任何其他正在扫描的蓝牙设备连接 但使用 CBCentralManager 方法 scanForPeripheralsWithServices
  • Sqlite3 查询在 iOS 8.2 下变得非常慢

    我制作了一个可以在应用程序内使用 sqlite 数据库的应用程序 在 iOS 8 2 之前 它工作得很好 但更新后 查询方法的工作速度慢了大约 100 倍 我试图查找有关此问题的信息 但尚未找到任何信息 有人有同样的经历吗 这是我的方法 到
  • iOS 8.0 中的 UISearchBar barTintColor clearColor 错误

    在我的应用程序中我正在使用UISearchBar在 xib 与Xcode6 我给的条形锡颜色是透明颜色 它正在努力iOS 7 1 below 但主要问题在于iOS 8 0它的颜色不清晰 它显示黑色 看图片 任何对这个问题有冒险精神的人 我在
  • 在 iOS 7 中,我可以使用 Apple 推送通知服务让我的应用执行某些操作而不通知用户吗

    我的算法希望这样工作 如果我的服务器上发生了一些所需的事件 那么我希望向我的应用程序的每个用户 前台或后台 发送少量数据 但是 我希望我的应用程序对数据进行一些计算并确认服务器 而不是通知用户 请记住 不得通知用户 您可以使用content
  • 为什么UICollectionViewCell的outlet为nil?

    我在 Interface Builder 中创建了一个自定义 UICollectionViewCell 将其上的视图绑定到类 然后当我想使用字符串并将其设置为字符串上的标签时 该标签具有 nil 值 override func viewDi
  • 当应用程序在前台时,如何使远程通知出现在通知中心?

    当我的应用程序在前台时 它会收到来自我的服务器的推送通知 触发我的UNNotificationServiceExtension 然后触发userNotificationCenter willPresent withCompletionHan
  • 如何同时关闭 UIAlertController 和键盘?

    我创建了一个注册表单UIAlertController并使用了该方法addTextFieldWithConfigurationHandler添加文本字段 但有一个小问题 当表单显示时 键盘和模式会以流畅的动画出现 关闭表单时 模态消失fir

随机推荐

  • go build 找不到修订版本

    我在计算机 A 上开发了一个存储库 并创建了一个我签入的 go mod go sum 我使用计算机 B 上的 go mod go sum 文件提取该存储库 但是当我尝试构建该程序时 无法满足模块约束 go build go finding
  • “太多的值无法解压”,迭代字典。键=>字符串,值=>列表

    我正在得到too many values to unpack错误 知道我该如何解决这个问题吗 first names foo bar last names gravy snowman fields first names first nam
  • 有没有办法记录对给定类的每个方法的每次调用?

    我正在寻找一种方法来记录对给定 UIView 的每个方法的每次调用 以进行调试 这是我为此编写的代码 https github com xlc XLCXcodeAssist blob master XLCXcodeAssist XLCPro
  • Homebrew:brew doctor 抛出很多错误,我该如何修复它们? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我很久以前就安装了 homebrew 但用得并不多 但我正在考虑重新开始使用它 因为它是一个非常有用且易于使用的软件包安装程序 不管怎样 我运行了br
  • 这个 if 语句如何避免使用分号?

    如何在不使用分号的情况下打印 hello world 一直是一个流行的问题 我知道很多代码 但这一个听起来很奇怪 因为我无法理解其背后的逻辑 请帮我看看它是如何打印的 if printf hello world 关于分号的部分只是一点 我比
  • 为什么SSIS创建这个任务失败?

    我编写了以下代码来实现通过 HTTP 获取文件的 SSIS 控制流任务 using System using Microsoft SqlServer Dts Runtime namespace HttpTask DtsTask Displa
  • 防止 ASP.NET Core 中拒绝服务 (DoS) 攻击的最佳实践

    我正在寻找有关 ASP NET Core Web 应用程序的拒绝服务 DoS 保护 缓解的最佳实践建议 指南 可能来自 Microsoft 到目前为止我发现的主要两个选项是 AspNetCore速率限制 https github com s
  • == 与 .NET 中的 Object.Equals(object)

    因此 当我还是个新手时 与现在的新手相比 我曾经认为这两个东西是彼此的语法糖 即使用一个而不是另一个只是个人喜好 随着时间的推移 我发现这两者不是一回事 即使在默认实现中也是如此 请参阅this http web archive org w
  • 是什么让Python3的打印函数线程安全?

    我在各种邮件列表和论坛上看到人们不断提到 Python 3 中的打印函数是线程安全的 根据我自己的测试 我认为没有理由怀疑这一点 import threading import time import random def worker l
  • 从引用创建shared_ptr

    我对 C 比较陌生 这似乎是一个菜鸟问题 但我无法使用互联网上的其他资源来解决它 我正在尝试从引用创建一个shared ptr 我有以下内容Book class include
  • 将“正常”std::string 转换为 utf-8

    让我们看看我是否可以在没有太多事实错误的情况下解释这一点 我正在编写一个字符串类 我希望它使用utf 8 存储在 std string 中 因为它是内部存储 我希望它能够同时 正常 std string and std wstring作为输
  • 如何仅删除一些方面标签?

    Using facet wrap 是否可以只删除一些方面标签 在下面的示例中 我希望物种标签仅出现在每行的第一列中 我知道我可以使用labeller功能 但不包括如何更改单个标签 data iris library tidyr librar
  • 在 firebase 中看不到请求标头的值?

    我执行以下操作 var headers new Headers headers append bunny test headers append rabbit jump fetch blahurl com someservice heade
  • 为什么 svcutil.exe 的 /reference 选项不起作用?

    我正在尝试使用 svcutil exe 从一组 wsdl 文件中仅生成服务契约 接口 当我这样做时 从 http 托管的 wsdl 它会获取包含的模式并为它们生成所有代码 Great 我会做什么REALLY然而 我喜欢做的是使用一组已经使用
  • SVG 线条动画不起作用

    I am trying to create an effect where smoke comes out of a vessel Like this example where smoke comes out of a coffee cu
  • 删除记录前检查规则违规情况

    我想为我的 SQL Server 2005 数据库中的许多实体实施 软删除 方案 我的意思是 如果没有违反引用完整性规则 我想从表中删除一行 否则我将在记录上设置一个标志以表示它已被删除 我希望强制执行此 软删除 模式的表必须将 无操作 应
  • 如何将两个小部件放置在同一行中?

    我有国家 地区代码 DropdownMenu 和电话 TextFormField 如何将它们放在同一级别 我尝试过对齐小部件 Row children
  • 更改 Android numberpicker 分隔线颜色

    我想将上面显示的数字选择器的分隔线颜色 蓝色 更改为透明 我尝试了很多事情 比如 number picker setDividerDrawable getResources getDrawable R color transparent n
  • “可选类型‘字符串’的值?”没有打开;您是想使用“!”吗?或者 '?' ?”

    我研究 iOS 或 Swift 的时间并不长 通过最新的 Xcode 更新之一 我在计算机上制作的许多应用程序现在似乎都在使用过时的语法 Xcode 告诉我们将其转换为新语法 但通常这并不能解决任何问题 而且我遇到了一个新问题 这是我在语法
  • CloudKit推送通知,应用程序在后台运行

    iOS8 2 app在后台运行时 不会收到任何推送通知 而如果它在前台运行 它可以很好地接收推送通知 知道发生了什么事吗 运行于CloudKit Development模式 订阅用于添加 编辑和删除 并使用以下内容didReceiveRem