ios - 如何使用 CKSubscription 发送多列信息

标签 ios swift apple-push-notifications cloudkit cksubscription

我可以使用 CKNotificationInfo() 和 CKNotificationInfo.alertBody 让 CKSubscription 工作。所以我可以发送一条信息。我试图让 CKSubscription 以字典格式向用户发送消息、用户名、位置等信息。我已经涉足 CKNotificationInfo.alertLocaliztionKey 和 CKNotificationInfo.alertLocaliztionArgs 但似乎无法使其工作。感觉好像我遗漏了一些小东西,因为 CKSubscription 不应该让它工作这么麻烦。

最佳答案

因为这不是通知框架的目的。你得到的是关于什么发生了变化的信息,然后你必须获取这些数据并做你想做的事。我制作了一个应用程序,它既可以告诉用户某些内容已更改,又可以在后台静静地刷新本地数据:

let cloudKitNotifiction = CKQueryNotification(fromRemoteNotificationDictionary: uif)
        if cloudKitNotifiction.notificationType == CKNotificationType.Query{
            if let recordId = cloudKitNotifiction.recordID{
                let ccs = CloudCoreSynchronizer()
                ccs.syncOneCustomerFromCloudToCore(recordId)
                resetBadgeCounter()
            }
        }

要使这项工作正常进行,您必须启用推送通知和后台模式,如果您希望它在应用程序处于后台时发生。希望这对您有所帮助。 PS:无视inapp purchase的事情,与此无关

enter image description here

关于ios - 如何使用 CKSubscription 发送多列信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36105223/

相关文章:

apple-push-notifications - 用于开发/沙盒的 APNs key (.p8 文件)

ios - 设备锁定时在通知中心显示推送消息

ios - UICollectionView 不会在自定义弹出 View 中显示单元格

ios - dataSource 不会在 cellForItemAt 函数中更新

ios - 线路交叉点 - GPS 坐标

ios - 更新具有主键的 Realm 对象

ios - 一个 Bundle ID 的多个推送证书

ios - 公开可用的 iOS app_id 到 app_bundle 映射?

iPhone iOS 保存从 UIImageJPEGRepresentation() 获取的数据第二次失败 : ImageIO: CGImageRead_mapData 'open' failed

swift - 使用函数 swift 自动更新 NSView