小编dev*_*jac的帖子

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

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

我一直在玩[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]订阅了Item

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

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)info
Run Code Online (Sandbox Code Playgroud)

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

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

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

更新15/06/14显然这是苹果方面的一个错误,让我们等几个星期. 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];
    
    Run Code Online (Sandbox Code Playgroud)

    [application registerUserNotificationSettings:settings];

就这样

iphone notifications ios8 cloudkit cksubscription

17
推荐指数
1
解决办法
2251
查看次数

标签 统计

cksubscription ×1

cloudkit ×1

ios8 ×1

iphone ×1

notifications ×1