Push notification 如何设置最小订阅?

Push notification 如何设置最小订阅?,push-notification,publish-subscribe,ios8,cloudkit,cksubscription,Push Notification,Publish Subscribe,Ios8,Cloudkit,Cksubscription,我想设置一个简单的CKSubscription,通知我创建了recordType,您是如何注册通知的?在应用程序DIDFILINSHLAUNCHINGWITHOPTIONS中,您应该有如下内容: application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert | .Badge | .Sound, categories: nil)) application.registerForRem

我想设置一个简单的
CKSubscription
,通知我创建了
recordType
,您是如何注册通知的?在应用程序DIDFILINSHLAUNCHINGWITHOPTIONS中,您应该有如下内容:

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert | .Badge | .Sound, categories: nil))
application.registerForRemoteNotifications()

在试验了一段时间后,我创建了一个可以在

上使用的工作演示。这是如何设置最小的CKSubscription。您必须在设备上测试它,推送通知在模拟器上不起作用。您可以在仪表板中添加记录,这也将触发推送通知

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {

    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil))
    application.registerForRemoteNotifications()
        return true
}

func someFunc() { // <- you need to call once in app life time, and again when it was removed / installed 
     let defaultContainer = CKContainer.defaultContainer()
     let publicDatabase = defaultContainer.publicCloudDatabase   
     let subs = CKSubscription(recordType: "xxx", predicate: NSPredicate(value: true), subscriptionID: "yyy", options: .FiresOnRecordCreation)
     subs.notificationInfo = CKNotificationInfo()
     subs.notificationInfo.alertBody = "New item added"
     publicDatabase.saveSubscription(subs, completionHandler: {subscription, error in})
}

func application(application: UIApplication!, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]!)
{
    // <- this method will invoked
}
func应用程序(应用程序:UIApplication,didfishlaunchingwithoptions启动选项:NSDictionary?->Bool{
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes:.警报,类别:nil))
应用程序.注册表项更改()
返回真值
}

func someFunc(){//检查您的代码,我是否需要在每次启动订阅时创建订阅,或者在应用的生命周期内仅创建一次订阅才能获取通知否,您只需要创建一次订阅。如果您尝试创建完全相同的订阅,您将收到一个错误,即类似的订阅已经存在。是的,但在我停止应用并重新启动它之后在中,我可以重新创建它,也可以使用相同的名称从其他设备创建订阅,对吗?!重新创建时,您应该会看到它已经存在的错误。因为它已经存在,您可以忽略该错误。如果您在另一个设备上创建它,但使用相同的iCloud id,那么您应该仍然会看到该错误。如果您使用不同的iCloud id,则可以。重要的是,如果
alertBody=“
,则在应用程序关闭时不会显示警报视图,至少必须设置一个空字符