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

Fire push notification after delay using CloudKit

我正在使用 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。但是,我想在几天后发送推送通知。我怎样才能做到这一点?谢谢!

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

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

或者,您可以在您的应用程序中记录更改的记录/通知信息,并在应用程序 运行ning 时酌情处理。

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