【发布时间】:2017-10-28 16:29:27
【问题描述】:
在我的应用程序中,我有一个公共 CloudKit 数据库。我正在使用它进行远程订阅。
我在 CloudKit 仪表板中创建了一个 GlobalNotification 记录,为此记录创建了 String 类型的 content 字段,并在我的 AppDelegate 中实现了以下方法以使通知工作:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let subscription = CKQuerySubscription(recordType: "GlobalNotification", predicate: NSPredicate(format: "TRUEPREDICATE"), options: .firesOnRecordCreation)
let info = CKNotificationInfo()
info.alertBody = "Some Text" // here i want to show content String data of a CKRecord which fired a notification
info.shouldBadge = true
info.soundName = "default"
subscription.notificationInfo = info
CKContainer.default().publicCloudDatabase.save(subscription, completionHandler: { subscription, error in
if error == nil {
// Subscription saved successfully
} else {
// An error occurred
}
})
}
之后,我在 cloudKit 仪表板中创建一个新的 GlobalNotification 记录,并在 CloudKit 仪表板中的该记录的 content 字段中添加一些“CloudKit 内容文本”。
当我的设备上触发通知时,我在它的 alertBody 中看到“一些文本”文本,但我想看到“CloudKit 内容文本”。
我希望此通知显示取自 GlobalNotification Record 的 content 字段的字符串。我应该如何更改我的代码来实现这一点?
我已阅读有关 desiredKeys 并尝试添加 info.desiredKeys = ["content"] 但没有帮助。我也用谷歌搜索过,但没有找到解决方案。
【问题讨论】:
标签: ios swift notifications cloudkit ckrecord