iOS 8中的远程通知(非用户通知)

Tod*_*odd 7 notifications push-notification ios8

在iOS 8中,即使没有用户的明确许可,也可以将远程通知发送到用户的设备.所以我正在尝试使用此和远程通知后台模式通过发送远程推送通知来唤醒应用程序.

我通过注册远程通知而不是用户通知来确认这是有效的.(-registerUserNotificationSettings)

[application registerForRemoteNotification];
Run Code Online (Sandbox Code Playgroud)

我已经实现了以下委托方法.

- (void)application:(UIApplication *)application 
        didReceiveRemoteNotification:(NSDictionary *)userInfo
        fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
Run Code Online (Sandbox Code Playgroud)

但是,它似乎只有在应用程序位于前台时才有效.

根据文件,

使用此方法处理应用程序的传入远程通知.与应用程序:didReceiveRemoteNotification:方法不同,只有当您的应用程序在前台运行时才会调用该方法,系统会在您的应用程序在前台或后台运行时调用此方法.

即使我启用了远程通知后台模式("必需的后台模式","应用程序从项目设置的信息中下载内容以响应推送通知"),它也不会唤醒应用程序.

我在这里错过了什么吗?

为了清楚起见,我不希望用户看到推送通知权限警报,因为我不需要在收到推送通知时显示任何内容.我只是想唤醒应用程序并进行一些处理.

这是我正在使用的有效载荷.

{ "aps": { "content-available": 1 } }
Run Code Online (Sandbox Code Playgroud)

从控制台,我看到了这一点.

apsd[82] <Warning>: Silent Push: Deny app has no feature.
Run Code Online (Sandbox Code Playgroud)