【发布时间】:2016-03-28 18:11:27
【问题描述】:
我正在尝试使用 iOS、Swift 和 CloudKit 制作一个消息传递应用程序。我已经成功做到了,每当有人添加另一条消息时,我都会发送推送通知。但是,我希望推送通知的文本能够说明消息中的内容。这是我尝试过的:
发送通知的默认代码:
let subscription = CKSubscription(recordType: "Responses", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil), options: .FiresOnRecordCreation)
let notification = CKNotificationInfo()
notification.alertBody = "New Message Sent"
notification.soundName = UILocalNotificationDefaultSoundName
subscription.notificationInfo = notification
CKContainer.defaultContainer().publicCloudDatabase.saveSubscription(subscription) { (result, error) -> Void in
if error != nil {
print(error!.localizedDescription)
}
}
这允许我为每条“新消息已发送”的消息发送通知。这是我为指定通知尝试过的:
//publicDB is the CKContainer.defaultContainer.publicDatabase
publicDB.fetchAllSubscriptionsWithCompletionHandler({ (subscriptions, error) in
if error != nil {
self.displayError(self.getStringFromError(error!))
} else {
for subscription in subscriptions! {
subscription.notificationInfo?.alertBody = self.responseTextField.text
}
}
})
let record = CKRecord(recordType: "Responses")
record.setObject(currentUsername, forKey: "respondedBy")
record.setObject(responseTextField.text, forKey: "response")
publicDB.saveRecord(record) { (record, error) in
//code for updating tables, etc.
//Notification on other device sent
}
设置订阅的alertBody(我在上面尝试过的操作)不起作用。是否有任何其他解决方案可以更新订阅的 alertBody?谢谢!
【问题讨论】:
标签: ios xcode swift push-notification cloudkit