- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序使用 CloudKit 查询订阅和通知作为基于 CloudKit 的同步解决方案的一部分。这与 iOS 12、macOS 10.14 甚至 macOS 10.15 beta 完美配合,但不适用于 iOS 13.0、iOS 13.1、iPadOS 13.1 和 tvOS 13.0。
删除并重新创建订阅并不能解决此问题。
这是一个已知问题吗?
根据文档,CloudKit 订阅没有任何变化。还是我错过了什么?
最佳答案
要在 iOS 13.x 和 tvOS 13.x 中接收静默 CKQuerySubscription 通知,您的 NotificationInfo
的 soundName
和 alertBody
参数CKQuerySubscription
必须不设置。
过去我们已经学会了使用空字符串作为所述参数,以使整个 CloudKit 订阅工作正常运行,但现在这已经成为历史。显然,苹果已经修复了一个旧错误,该错误导致使用此“解决方法”的应用程序出现问题。
我已在 iOS 12.4.2、iOS 13.1.2、tvOS 13.0、macOS 10.14.6 和 macOS 10.15 GM 上对此进行了测试。
let info = CKSubscription.NotificationInfo()
info.shouldSendContentAvailable = true
// info.soundName = "" // Don't set this property
// info.alertBody = "" // And also leave this this property alone
let subscription = CKQuerySubscription(recordType: "yourRecordType", predicate: NSPredicate(value: true), subscriptionID: "yourSubscription", options: [CKQuerySubscription.Options.firesOnRecordUpdate, CKQuerySubscription.Options.firesOnRecordDeletion])
subscription.notificationInfo = info
// You must first delete the old subscription to change the sound name
let deleteOperation = CKModifySubscriptionsOperation(subscriptionsToSave: nil, subscriptionIDsToDelete: ["yourSubscription"])
yourContainer.privateCloudDatabase.add(deleteOperation)
let createOperation = CKModifySubscriptionsOperation(subscriptionsToSave: [subscription], subscriptionIDsToDelete: nil)
createOperation.addDependency(deleteOperation)
yourContainer.privateCloudDatabase.add(createOperation)
关于iOS 13.1 不会收到静默 CKQuerySubscription 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58106180/
我注意到 docs请注意,新引入的共享 CloudKit 数据库不支持 CKQuerySubscription(在早期的 iOS 版本中,这些数据库称为 CKSubscription)。所以我想这
我想在我正在开发的应用程序中介绍 CloudKit 的用法。作为第一步,当某些记录被插入公共(public)数据库时,我将使用它来处理推送通知。因此,在我的应用程序中,我会为我想要监控的每种记录类型创
我的应用程序使用 CloudKit 查询订阅和通知作为基于 CloudKit 的同步解决方案的一部分。这与 iOS 12、macOS 10.14 甚至 macOS 10.15 beta 完美配合,但不
我正在尝试让 iOS 应用程序监听 CKQuerySubscription 更改。数据由远程 iOS 应用程序传输。我已经有一个 macOS 应用程序,它确实接收远程 iOS 应用程序发送的数据。我遇
由于 CKQuerySubscription 触发,CloudKit 仅发送 50-100 条推送通知。对于一个订阅,限制似乎是 56。我可以在仪表板上看到推送。我可以在该推送列表中看到我的用户 ID
Xcode 抛出一个非常模糊的错误: Ambiguous use of 'firesOnRecordCreation' 进行 CKQuerySubscription 时。实际上,它对添加到该调用的每个
我是一名优秀的程序员,十分优秀!