如何使用CloudKit订阅进行远程通知?

时间:2014-06-13 03:25:19

标签: iphone notifications ios8 cloudkit cksubscription

到目前为止,我无法订阅工作。 (在我的设备上接收推送通知,似乎已成功创建订阅)

我一直在玩[CloudKitAtlas] [1]。我完成了该自述文件的自述文件:

  

要求

     

构建

     
      
  • iOS 8.0 SDK和Xcode 6
  •   
  • 在iCloud中启用CloudKit授权(来自功能)
  •   
  • 更改您的容器名称以在您的开发者帐户中设置容器
  •   

我可以启动应用程序,它可以成功注册远程通知:

  

2014-06-09 11:15:17.712 CloudKitAtlas [841:220562]已注册推送   带令牌的通知:

我也可以创建记录,查询和订阅:

  

2014-06-09 11:15:21.966 CloudKitAtlas [841:220934]订阅商品

如果我转到仪表板,我会看到几个订阅。 但是当我创建新记录时没有任何反应,回调:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)info

永远不会执行(注意:我在iPhone 5S上运行应用程序,而不是在模拟器上运行)

我正在使用带有显式bundle id(没有通配符)的调试签名,对于这个app id,我也创建了相应的推送通知证书,尽管我刚下载它们,因为我与这些文件无关。

  1. 我忘了做某事吗?
  2. 我没有正确测试吗?
  3. 是否有人设法通过订阅触发其设备上的远程通知?

  4. 更新15/06/12 显然这是苹果方面的一个错误,让我们等几个星期。 https://developer.apple.com/library/content/samplecode/CloudAtlas/Introduction/Intro.html#//apple_ref/doc/uid/TP40014599


    更新18/05/15

    如果有人想知道很久以前Apple已经解决了这个问题,现在它就像魅力一样,虽然你需要做一些考虑:

    1. 确保 saveSubscription:completionHandler:方法无误执行
    2. 如果您使用 [application registerForRemoteNotifications]; 您将在前台获取应用程序的通知,它可能看起来毫无意义但它非常有用,因为这种推送通知是“无声的”,您不需要用户权限来使用它们
    3. 如果您想通过弹出请求权限以及应用程序外部显示的警报以及您需要使用的所有内容来获取旧时尚推送通知:
      UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:
                                          UIUserNotificationTypeBadge |
                                          UIUserNotificationTypeSound |
                                          UIUserNotificationTypeAlert
                                                                           categories:nil];
      
           

      [application registerUserNotificationSettings:settings];

    4. 这就是全部

1 个答案:

答案 0 :(得分:-1)

registerForRemoteNotificationTypes:类型  NS_DEPRECATED_IOS(3_0,8_0,"请使用registerForRemoteNotifications和registerUserNotificationSettings:代替");

//返回已启用的类型,同时考虑任何系统范围的设置;与连通性无关。

enabledRemoteNotificationTypes  NS_DEPRECATED_IOS(3_0,8_0,"请使用 - [UIApplication isRegisteredForRemoteNotifications],或 - [UIApplication currentUserNotificationSettings]检索用户启用的远程通知和用户通知设置");

从iOS8开始它被弃用不是原因,可能会是?