我可以使用CKNotificationInfo()和CKNotificationInfo.alertBody获得CKSubscription工作。所以我可以发送一条信息。我正在尝试使CKSubscription以字典格式向用户发送消息,用户名,位置等信息。我已经涉足CKNotificationInfo.alertLocaliztionKey和CKNotificationInfo.alertLocaliztionArgs,但似乎无法使其工作。感觉就像我错过了一些小东西,因为CKSubscription不应该让它变得麻烦。
答案 0 :(得分:2)
因为这不是通知框架中的目的。你所得到的是关于什么已经改变的信息,然后你必须获取这些数据并做你想做的事情。我创建了一个应用程序,它既告诉用户某些内容发生了变化,又在后面静默刷新本地数据:
let cloudKitNotifiction = CKQueryNotification(fromRemoteNotificationDictionary: uif)
if cloudKitNotifiction.notificationType == CKNotificationType.Query{
if let recordId = cloudKitNotifiction.recordID{
let ccs = CloudCoreSynchronizer()
ccs.syncOneCustomerFromCloudToCore(recordId)
resetBadgeCounter()
}
}
要完成这项工作,您必须启用推送通知和后台模式,如果您希望在应用程序处于后台时发生这种情况。希望这会有所帮助。 PS:只是忽略inapp购买的东西,它与此无关