如何使用 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 删除不起作用

如何设置最小的 CKSubscription?

如何在 Objective-c 中删除 cksubscription?

如何快速解析 TVos 中返回的 CKSubscription 用户信息字段

如何更改徽章数量?

UiPath基础入门&微信自动发送信息