使用 CloudKit 延迟后触发推送通知

Posted

技术标签:

【中文标题】使用 CloudKit 延迟后触发推送通知【英文标题】:Fire push notification after delay using CloudKit 【发布时间】:2016-08-24 20:54:20 【问题描述】:

我正在使用 CloudKit 处理推送通知。通常,我使用选项.firesOnRecordCreation 来确定我希望何时发送推送通知。例如。 -

let subscription = CKQuerySubscription(recordType: "SomeRecord", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil), options: .firesOnRecordCreation)

CKContainer.default().publicCloudDatabase.save(subscription)  (result, error) -> Void in
    //check for result and error

这是CKQuerySubscriptionOptions。但是,我想在几天后发送推送通知。我怎样才能做到这一点?谢谢!

【问题讨论】:

【参考方案1】:

目前无法为 CloudKit 推送通知的传递设置延迟。 CloudKit 在满足订阅的更改发生后的某个时间点发送通知。应用开发者无法控制此过程的时间安排,时间安排可能会受到多个变量的影响。

如果您想在以后向用户显示通知,您可以通过为该日期安排本地通知来解决此问题(在您收到 CloudKit 通知之后)。

或者,您可以将更改的记录/通知信息记录在您的应用中,并在应用运行时进行适当的处​​理。

或者,如果您愿意运行自己的服务器和/或发送自己的推送通知,那么没有限制。

【讨论】:

以上是关于使用 CloudKit 延迟后触发推送通知的主要内容,如果未能解决你的问题,请参考以下文章

未收到来自 CloudKit 订阅的推送通知

CloudKit 推送通知订阅不起作用

未收到CloudKit推送通知

iOS 未收到来自 CloudKit 的推送通知

来自 CloudKit 的推送通知未正确同步

记录更新的 CloudKit 推送通知停止工作