如何使用 CKSubscription 发送多列信息

How to send multiple columns of information using CKSubscription

我可以使用 CKNotificationInfo() 和 CKNotificationInfo.alertBody 让 CKSubscription 工作。所以我可以发送一条信息。我试图让 CKSubscription 以字典格式向用户发送消息、用户名、位置等内容。我已经尝试过 CKNotificationInfo.alertLocaliztionKey 和 CKNotificationInfo.alertLocaliztionArgs,但似乎无法正常工作。感觉好像我遗漏了一些小东西,因为 CKSubscription 不应该让它工作这么麻烦。

因为这不是通知框架的目的。你得到的是关于什么发生了变化的信息,然后你必须获取这些数据并做你想做的事。我制作了一个应用程序,它既可以告诉用户某些内容已更改,又可以在后台静默刷新本地数据:

let cloudKitNotifiction = CKQueryNotification(fromRemoteNotificationDictionary: uif)
        if cloudKitNotifiction.notificationType == CKNotificationType.Query{
            if let recordId = cloudKitNotifiction.recordID{
                let ccs = CloudCoreSynchronizer()
                ccs.syncOneCustomerFromCloudToCore(recordId)
                resetBadgeCounter()
            }
        }

要完成这项工作,您必须启用推送通知和后台模式,如果您希望它在应用程序处于 background.Hope 时发生,这会有所帮助。 PS: 内购的事就别管了,跟这个没关系