如何使用 CKSubscription 发送多列信息
Posted
技术标签:
【中文标题】如何使用 CKSubscription 发送多列信息【英文标题】:How to send multiple columns of information using CKSubscription 【发布时间】:2016-03-19 18:02:27 【问题描述】:我可以使用 CKNotificationInfo() 和 CKNotificationInfo.alertBody 获得 CKSubscription 工作。所以我可以发送一条信息。我正在尝试让 CKSubscription 以字典格式向用户发送消息、用户名、位置等信息。我已经涉足 CKNotificationInfo.alertLocaliztionKey 和 CKNotificationInfo.alertLocaliztionArgs 但似乎无法使其工作。感觉就像我错过了一些小东西,因为 CKSubscription 不应该让它工作起来那么麻烦。
【问题讨论】:
您最多可以在desiredKeys
属性developer.apple.com/library/ios/documentation/CloudKit/… 中包含三个键名,但数据的大小是有限的。通常,如果您需要的数据,您将需要使用通知来触发获取
谢谢!很有帮助
【参考方案1】:
因为这不是通知框架的意图。您得到的是关于 WHAT 已更改的信息,然后您必须获取这些数据并执行您想做的任何事情。我制作了一个应用程序,它既可以告诉用户某些事情发生了变化,又可以在后面静默刷新本地数据:
let cloudKitNotifiction = CKQueryNotification(fromRemoteNotificationDictionary: uif)
if cloudKitNotifiction.notificationType == CKNotificationType.Query
if let recordId = cloudKitNotifiction.recordID
let ccs = CloudCoreSynchronizer()
ccs.syncOneCustomerFromCloudToCore(recordId)
resetBadgeCounter()
如果您希望在应用程序处于后台时发生这种情况,您必须启用推送通知和后台模式。希望这会有所帮助。 PS:inapp购买的东西就不管了,和这个没有关系
【讨论】:
以上是关于如何使用 CKSubscription 发送多列信息的主要内容,如果未能解决你的问题,请参考以下文章
通过 CKSubscription 观察 CKRecord 删除不起作用
如何在 Objective-c 中删除 cksubscription?