问题标签 [cknotification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
293 浏览

ios - 记录中特定字段的 cloudkit 通知

我有 cloudkit 通知工作。当有人更改记录时,会通知订阅者。我的订阅定义如下所示:

问题是,该记录中有多个字段。我只想在一个特定字段发生变化时提醒订阅者。

创建订阅时,有没有办法设置搜索谓词来检测特定字段的变化?我通读了各种 Predicate 文档,但没有看到特别提到这一点。

或者,在收到通知时,有没有办法查看哪些字段发生了变化?在didReceiveRemoteNotification我尝试过:

queryNotification.recordFields为空。

作为最坏的情况,我考虑过将特定字段分解为它自己的记录,但是我需要维护更多由公共 GUID 捆绑在一起的记录的开销。我希望保持这个更紧凑。

0 投票
2 回答
497 浏览

ios11 - CKModifyBadgeOperation 在 iOS 11 中已弃用。有人知道另一种方法吗?

我已经搜索过了,我找不到一个例子。我也尝试过调整此代码(在其他地方推荐(CloudKit 不会将我的徽章计数重置为 0):

这目前有效,但不再受支持,并且可能很快就会消失。

我想也许我应该使用 CKModfyRecordsOperation 或其他一些 CKDatabaseOperation,但我什至无法猜测如何。

0 投票
1 回答
97 浏览

swift - 如何排队大量入站 CloudKit 通知

假设我将 50 条记录保存到 CloudKit,CKModifyRecordsOperation如下所示:

在我的其他设备上,我会收到50 个不同的背景通知,每一个都CKRecord发生了变化。没关系,我期待。

我像这样处理每个入站通知:

CKRecordID但是由于 50 个传入通知中的每一个都是单独的事件,因此该函数会被调用 50 次不同的时间,因此会触发大量请求以使用通知给我的 s 来拉取完整记录。

如何在合理的时间内将所有传入的 notification 排队,CKRecordID以便我可以一次CKFetchRecordsOperation使用多个 recordID 发出更有效的请求?

0 投票
1 回答
39 浏览

swift - 在 didReceiveRemoteNotification 中处理来自公共、私有和共享数据库的通知

我通过将 userInfo 转换为 CKDatabaseNotification 来处理私有和共享数据库通知。但是我确实在 didReceiveRemoteNotification 方法中也收到了公共数据库通知,并且 Apple 模板代码没有显示如何处理它并且它引发了一个 fatalError。如何通过我的 fetchChanges 方法处理公共数据库通知?