在阅读了一些指南和参考资料之后,我仍然对报亭的工作方式有一些疑问。

  • 首先(我只想确定),原子供稿仅用于应用程序商店还是用于应用程序?在前台填写nkissue对象时,应用程序是否必须阅读此内容?还是我必须为此制作自己的自定义提要(xml,plist或其他内容)。我在存储该问题URL的条目中没有看到任何密钥。我应该做与本教程http://www.viggiosoft.com/blog/blog/2011/10/17/ios-newsstand-tutorial/相同或类似的事情吗?
  • 如果您只需要在有效负载上发送“content-available = 1”,通知“UIRemoteNotificationTypeNewsstandContentAvailability”如何工作?它会下载原子供稿中的最新一期吗?以及我应该如何在后台进行下载(代码段会很不错)。
  • 原子供稿是可选的吗?如果我对下载的问题有自己的自定义供稿,那么原子供稿是否是可选的,因为它可能仅用于应用商店?

  • 编辑:
    似乎atom是可选的,仅适用于iTunes,我应该为我想的应用程序使用其他服务。我仍然不明白的是,我应该在哪里实现后台加载...

    类似于此- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions的“if”中的if ([launchOptions objectForKey:UIApplicationLaunchOptionsNewsstandDownloadsKey] || [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) {}
    要么
    -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    

    还是两种选择?我对吗?

    最佳答案

  • 是的,Atom Feed仅用于使用新的发行信息更新App Store。获取问题信息的方式取决于您。
  • 您可以发送具有content-available:1的其他数据,例如,刚刚发布的问题的唯一ID。例如:
    {"aps":{"content-available": 1, "sound":"silent.wav"}, "issue_id":"latest_issue_id"}
    (由于iOS 7静默推送通知read here中的错误,我添加了声音组件。)
  • 是的,它是可选的。

  • 应该在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo上调用后台加载。唤醒应用程序(处于非 Activity 状态后)时将调用一个,而处于 Activity 状态或后台状态时将调用另一个。 (再次使用iOS7进行测试时要格外小心,它暂时还不能像等待iOS7.1那样正常工作。)

    10-04 17:01