iOS报亭:推送通知不会在后台启动应用程序

我正在应用程序中实现报亭功能,虽然应用程序收到推送通知,但它不会以后台模式启动.

如果我点击通知提醒应用程序启动,我可以看到“内容可用”:字典中存在1并且问题已下载,但应用程序未自动启动.

我加入了plist:

<key>UIBackgroundModes</key>
<array>
    <string>newsstand-content</string>
</array>

和didFinishLaunchingWithOptions:

[[NSUserDefaults standardUserDefaults]setBool: YES forKey:@"NKDontThrottleNewsstandContentNotifications"]; // for testing purposes
    [[NSUserDefaults standardUserDefaults] synchronize];

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeNewsstandContentAvailability )];

我还看到我的应用程序未显示在“设置”下 – >商店 – >自动下载(和其他杂志出现在那里).

我错过了什么吗?这应该适用于沙箱环境吗?

最佳答案 一些澄清

>如果您没有在报亭有效载荷中发送“警报”
只有内容可用:1,其中没有任何内容可以添加
通知中心.
>报亭通知启动应用程序并不意味着应用程序将进入前台(如果用户点击了应用程序图标).这只是意味着如果应用程序不在后台,它将由iOS在后台启动 – >调用appDelegate的didFinishLaunchingWithOptions,应用程序应检查它是否是报亭通知,通过在报亭队列中添加资产来安排下载.资产路径可以是NS有效负载的一部分(提供 NSDictionary * payload = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

if(payload&& [[payload objectForKey:kContentAvailablePush] caseInsensitiveCompare:@“1”] == NSOrderedSame)
{
  NSLog(@“由于NS通知而推出”);
}

点赞