问题标签 [ckfetchnotificationchange]

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 回答
920 浏览

ios - cloudKit:公共数据库中的 CKFetchRecordChangesOperation

我使用 cloudKit 构建了一个 iOS 应用程序。我正在尝试批量获取 cloudKit 中的数据,以获取设备和 cloudKit 之间的增量,但似乎 CKFetchRecordChangesOperation 在公共数据库中不起作用。我唯一的选择是 CKQuery 来获取我的数据吗?例如:

我会非常感谢你的帮助。

0 投票
0 回答
97 浏览

ios - CloudKit:notificationChangedBlock 无响应

我在使用 CloudKit 的应用程序中工作。我正在实现一种将增量从 CloudKit 获取到我的应用程序的方法(我正在使用公共数据库)。我从 fetchNotificationChangesCompletionBlock 块收到响应,但我没有从 notificationChangedBlock 收到响应。

这是我的代码:

你们中的任何人都知道我做错了什么或我的代码有什么问题吗?

我会非常感谢你的帮助。

0 投票
1 回答
630 浏览

ios - CKFetchNotificationChangesOperation 有时不返回 UPDATE、DELETE 通知

CKFetchNotificationChangesOperation返回 INSERT 操作,但不总是返回 UPDATE 和 DELETE。当我将应用程序提交到 App Store 时,DELETE,UPDATE 最后工作,但现在不再工作了。为什么?我创建了如下订阅:

仪表板显示所有树触发器:

在此处输入图像描述

我不使用 any alertBody,所以通知是所谓的静默通知,这可能是原因吗?

CloudKit 提示和技巧中,讲师说订阅需要 APS 功能才能从开发人员门户打开应用 ID。我想我没有,但我只想获取通知,只有在可行的情况下才推送。

后台能力?- 相同的

需要在应用的 info plist 中设置 APS 环境密钥。- 我想我有它。

0 投票
1 回答
105 浏览

ios - 更新通知的替代方法不起作用

UPDATE 通知停止工作。你有什么解决方法,直到 Apple 想出办法?

CKFetchNotificationChangesOperation 有时不返回 UPDATE、DELETE 通知 CloudKit 推送通知记录更新停止工作 https://forums.developer.apple.com/thread/7288

我的快速修复,每分钟,当用户触发时UIRefreshControl,我下载自上次更新以来修改的所有记录。有用。但我心里有个更好的主意,好奇,你怎么看。任何缺点。

我正在考虑向Change数据库添加一个表。它将有一个recordName, recordType,changeType字段。changeType可以有insert, update,delete字符串值。(或相应的 int 枚举)

我会CKSubscription只用Change桌子创建和观察。总是当在自定义表中创建、更新、删除记录时,我会做两件事,做那个动作,作为第二个动作,我会在Change表中创建一个“日志条目” 。因为它是 中的Insert操作Change,并且插入通知似乎有效,所以所有设备都会收到通知。他们可以下载引用的记录。

你看到什么缺点了吗?

0 投票
1 回答
882 浏览

cloudkit - CloudKit 错误:更改令牌已过期,需要重置

斯威夫特 3.1,Xcode 8.3.3

我不断收到来自 CloudKit 的错误,我不知道该怎么办。

我正在跟踪来自 CloudKit 的通知,如下所示:

错误说:

<CKError 0x174241e90:“更改令牌已过期”(21/1016);服务器消息=“错误代码:RESET_NEEDED”;uuid = ...; 容器 ID = "...">

CKServerChangeToken 文档没有提到任何关于重置令牌的内容,CloudKit 仪表板也没有提供任何此类选项。

知道我应该做什么吗?