问题标签 [cksubscription]

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

ios - CloudKit 订阅未在 iOS10 上保存

我正在关注关于添加订阅的“CloudKit 最佳实践”WWDC 讨论,这似乎在 iOS10 中发生了变化。

下面的代码返回“成功!”,但是我的“AllChanges”订阅从未出现在 CloudKit 仪表板上的订阅类型中。

我在 Xcode 8 beta 6 上。

0 投票
2 回答
386 浏览

ios - 如何创建 CloudKit 订阅通知以触发记录属性更新?

我使用 CloudKit。我有一个Channel记录类型,它确实具有isLive属性。它可以是01指示频道是否直播。

如果频道从 0 变为 1,我想向所有用户发送通知。

我试图像这样定义 CKQuerySubscription :

不过,这确实会发送有关此频道记录的任何更新的通知。它不关心isLive谓词。

知道如何仅接收isLive从 0 更改为 1 的通知吗?

还是最好接收此频道记录的所有更新,在我的应用程序中处理它们,然后在必要时发送本地通知?

0 投票
0 回答
256 浏览

swift - 具有多重比较的 CloudKit 订阅

我正在尝试为 CloudKit 通知创建订阅,但我似乎无法正确使用谓词。简单通知,只显示一个比较谓词,因此有效负载配置正确,但如果我使谓词更复杂一点,它不会收到任何通知。我需要订阅多个记录更改,但我必须一一进行。我想要的是能够使用 IN 或 OR 进行一次订阅,但它似乎不起作用。

工作谓词

非工作谓词

我正在使用 CKQuery CloudKit 指南(https://developer.apple.com/reference/cloudkit/ckquery)作为参考。订阅谓词实现不同还是我只是创建了错误的谓词?顺便说一句,所有谓词都编译,在断点上它们正确显示,代码中没有错误,应用程序在任何时候都不会崩溃,我已经验证了订阅实际上是在服务器上并且我使用了谓词'已经指定。无论是在设备上还是在服务器上更改记录都没有关系,更复杂的谓词似乎永远不会匹配任何东西。

为了完整起见,这里是使用第一个谓词但不是其余部分可以完美运行的订阅代码的其余部分,

任何帮助是极大的赞赏。

0 投票
2 回答
762 浏览

ios - 在 sharedDB cloudkit 中订阅记录更改

它似乎CKQuerySubscription不能用于订阅云套件中的共享数据库更改。CKDatabaseSubscription既不工作也不CKSubscription

如何实现订阅共享数据库更改?

简单地。如何获得与我共享的记录更改通知。我不是记录的所有者。

相关问题在这里:

如何接收关于与我共享的记录所做更改的 cloudkit 通知?

0 投票
1 回答
143 浏览

ios - 遇到 CKSubscription 错误:“无法创建或修改字段 'notif_num_subtitle_loc_args'”

所以我遇到了一个 CloudKit 错误,当我搜索它时只能得到一个 (1) Google 结果。运行 CKModifySubscriptionsOperation 以创建初始用户的 CK 订阅时出现错误。错误是 Cannot create or modify field 'notif_num_subtitle_loc_args'

我很确定这曾经可以工作,所以这可能是 iOS 10.3 或 CloudKit 内部的东西?

这是我用于创建订阅的代码:

这是遇到同样问题的人的谷歌结果:https ://forums.developer.apple.com/thread/76893

0 投票
2 回答
1049 浏览

ios - 如何在 iOS 10.3 中初始化 CKSubscription

我正在构建一个需要订阅以记录 iCloud 公共数据库中的更改的应用程序。现在,在观看了苹果视频并阅读了他们的文档后,我决定开始工作。但是,我立即陷入了困境:

在此处输入图像描述

CKSubScription 上的所有初始化方法都已弃用。这可以在这里看到,但同时苹果似乎仍然在他们的文档中使用相同的方法

这让我很惊讶。在网络和 SO 上环顾四周,似乎没有太多信息或任何可用的教程(至少,没有关于初始化订阅的最新信息),可能是因为这项技术相对较新并且这些更改是最近的。我对 CloudKit 的经验非常肤浅,所以我宁愿寻求一种体面的方法来做到这一点,也不愿自己即兴创作。我的问题是:

如何初始化 CKSubscription?

显然,如果订阅的整个想法已经过时,我愿意接受任何会导致我的应用程序在特定类型的记录出现在我的公共数据库中时收到推送的答案。

0 投票
2 回答
720 浏览

swift3 - Swift 3 中的顺序网络请求

我有多个网络请求需要按顺序发生。他们必须等到前一个完成并收到来自服务器的响应。

现在我有一个回调死亡金字塔。有没有更自动化的方法来做到这一点?我尝试了一个,OperationQueue但它不会等待请求完成,然后再前进到下一个请求,即使它设置为一次执行一个请求。

对于它的价值,.save是对 CloudKit 的网络请求。没有像其他 CloudKit 操作那样的 CloudKit 订阅队列。

我试过了DispatchGroup,但这似乎不起作用。在等待响应之前,所有请求似乎都已触发。

有任何想法吗?

0 投票
2 回答
696 浏览

ios - 如何更改徽章数量?

我正在使用 CKSubscription 发送推送通知,我发送它们并且设备正确接收所有内容,但我的徽章计数始终是以前的 +1?应用程序运行后如何将其设置为 0?

我已将此代码添加到 func 应用程序 didFinishLaunchingWithOptions

但是当您运行应用程序时,徽章会消失,收到下一个推送通知,数字会再次上升。

0 投票
1 回答
280 浏览

ios - 使用 CKShare 订阅

我是订阅和 Cloudkit 的新手,我正在尝试设置订阅,以便在创建、编辑、删除 CKShare 记录以及参与者离开私有和共享数据库的共享时发送推送通知。

在我的应用程序中,我在 Cloudkit 中有两种记录类型。第一个是Deck,第二个是CardDeck与 有one-to-many关系Card。每个人都Card持有CKReference一个Deck。我注意到 Cloudkit 仪表板中有第三种记录类型,名为cloudkit.share. 根据我的研究,我相信我在这里需要四个订阅。当用户使用. _ Deck_ Card_ 我是否还需要在每个数据库上为记录类型创建另一个订阅,总共六个订阅?CKQuerySubscriptionDeckCardCKDatabaseSubscriptioncloudkit.share

谢谢

0 投票
1 回答
855 浏览

swift - iOS 11 中是否弃用了静默远程推送通知?

目前我可以使用应用程序委托的didReceiveRemoteNotification方法接收静默推送。

该方法已被弃用,根据此我们应该切换到UNUserNotificationCenter'willPresent方法,但我似乎无法让它为静默推送工作。由于在静默推送中没有通知,因此至少可以说,如果这确实有效,那将是违反直觉的。

已阅读注册 push Xcode 8CKSub w/out notification和许多其他内容,但一切都回到了已弃用的方法。

是否有我们应该用于静默推送的替代方案(这不是面向用户的通知,但在这种情况下,它CKQuerySubscription是触发后台活动的报告)?或者应该为静默推送willPresent工作(在这种情况下我错过了配置的一部分......)?

提前致谢。