iphone - 如何使远程通知与 CloudKit 订阅一起使用?

标签 iphone notifications ios8 cloudkit cksubscription

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

我一直在玩[CloudKitAtlas][1]。我按照该项目的自述文件中的说明进行了操作:

Requirements

Build

  • iOS 8.0 SDK and Xcode 6
  • Enable the CloudKit entitlement in iCloud (from Capabilities)
  • Change your container name to provision a container in your developer account

我能够启动该应用程序,它已成功注册远程通知:

2014-06-09 11:15:17.712 CloudKitAtlas[841:220562] Registered for Push notifications with token:

我还可以创建记录、查询记录并订阅:

2014-06-09 11:15:21.966 CloudKitAtlas[841:220934] Subscribed to Item

如果我转到仪表板,我会看到创建的多个订阅。 但是当我创建新记录时什么也没有发生,回调:

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

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

我正在使用带有显式捆绑 ID(无通配符)的调试签名,并且对于此应用程序 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更新

如果有人想知道这个错误很久以前就被苹果解决了,现在它就像一个魅力,尽管你需要考虑一些因素:

  1. 确保 saveSubscription:completionHandler: 方法执行时没有错误
  2. 如果您使用[application registerForRemoteNotifications];您将在前台收到应用程序的通知,它可能看起来毫无意义,但非常有用,因为这种类型的推送通知是“静默的”,您不需要用户许可即可使用它们
  3. 如果您想获得旧式推送通知,其中会弹出请求许可的窗口和出现在应用程序外部的警报,以及您需要使用的所有内容,例如:
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:
                                        UIUserNotificationTypeBadge |
                                        UIUserNotificationTypeSound |
                                        UIUserNotificationTypeAlert
                                                                         categories:nil];
    

    [application registerUserNotificationSettings:settings];

就这些了

最佳答案

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

//返回启用的类型,同时考虑所有系统范围的设置;与连接无关。

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

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

关于iphone - 如何使远程通知与 CloudKit 订阅一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24197194/

相关文章:

c++ - Poco Poco::NotificationQueue 未按预期工作

iphone - iOS:在自动布局下更改 UITableView 高度

iphone - 如何替换NavigationController Stack中的viewController?

iphone - 如何处理 iPhone 和 iPhone4 的应用程序 Icon.png 的高分辨率和低分辨率

ios - 如何在swift中通过通知传递多个值

Azure 通知 : meaning of 3K unless broadcasted to less than 5 devices

ios - UITableViewCell 的字幕不会更新

swift - 某些设备上不需要的 ios 8 应用程序轮换

ios - NSXMLparser parse() 不工作

ios - 为自适应 iOS 应用程序提供的图像分辨率