我可以使用 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()
}
}
要使这项工作正常进行,您必须启用推送通知和后台模式,如果您希望它在应用程序处于后台时发生。希望这对您有所帮助。 PS:无视inapp purchase的事情,与此无关
关于ios - 如何使用 CKSubscription 发送多列信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36105223/