Ios 如何使用CKSubscription发送多列信息

Ios 如何使用CKSubscription发送多列信息,ios,swift,apple-push-notifications,cloudkit,cksubscription,Ios,Swift,Apple Push Notifications,Cloudkit,Cksubscription,我可以使用CKNotificationInfo()和CKNotificationInfo.alertBody获取CKSubscription工作。所以我可以发送一条信息。我试图让CKSubscription以字典格式向用户发送消息、用户名、位置等信息。我已经涉猎了CKNotificationInfo.alertLocalizationKey和CKNotificationInfo.alertLocalizationAgs,但似乎无法使其工作。感觉上我遗漏了一些小东西,因为CKSubscriptio

我可以使用CKNotificationInfo()和CKNotificationInfo.alertBody获取CKSubscription工作。所以我可以发送一条信息。我试图让CKSubscription以字典格式向用户发送消息、用户名、位置等信息。我已经涉猎了CKNotificationInfo.alertLocalizationKey和CKNotificationInfo.alertLocalizationAgs,但似乎无法使其工作。感觉上我遗漏了一些小东西,因为CKSubscription不应该让它这么麻烦。

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

let cloudKitNotifiction = CKQueryNotification(fromRemoteNotificationDictionary: uif)
        if cloudKitNotifiction.notificationType == CKNotificationType.Query{
            if let recordId = cloudKitNotifiction.recordID{
                let ccs = CloudCoreSynchronizer()
                ccs.syncOneCustomerFromCloudToCore(recordId)
                resetBadgeCounter()
            }
        }
要实现这一点,你必须启用推送通知和后台模式,如果你希望它在应用程序处于后台时发生。希望这能有所帮助。附言:不要理会inapp购买的事情,这与此无关


desiredKeys
属性中最多可以包含三个键名,但数据大小有限。通常,如果需要获取数据,则需要使用通知触发获取。谢谢!这很有帮助