Ios 后台刷新完成前显示的推送通知(使用后台刷新推送)
我正在尝试设置我的应用程序,以便在收到推送消息时,它首先获取新消息,然后再显示推送通知。在推送通知中,我设置了可用内容=1,并且在Plist中启用了开关。我已实施:Ios 后台刷新完成前显示的推送通知(使用后台刷新推送),ios,objective-c,apple-push-notifications,Ios,Objective C,Apple Push Notifications,我正在尝试设置我的应用程序,以便在收到推送消息时,它首先获取新消息,然后再显示推送通知。在推送通知中,我设置了可用内容=1,并且在Plist中启用了开关。我已实施: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result)
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{
if([[userInfo objectForKey:@"aps"] objectForKey:@"content-available"]){
NSLog(@"Doing the background refresh");
UINavigationController *navigationController=(UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController];
MYViewController *MYViewController = (MYViewController *)[[navigationController viewControllers] objectAtIndex:1];
[myViewController.currentUser refreshMessagesArrayWithCompletionHandler:^(BOOL successful, BOOL newMiaos) {
NSLog(@"messages refreshed the array now has %lu messages",(unsigned long)[myViewController.currentUser.messages count]);
handler(UIBackgroundFetchResultNewData);
}];
}
}
应用程序推送将在后台完成之前或刷新期间进入。当然,它应该在之后到来。我是不是处理错了?我是否需要发送静默推送通知,并在完成块后显示
本地通知?我遇到了与您类似的问题,
我通过发送这样的推送通知解决了这个问题
{
"alert": null,
"content-available": 1,
"data-id" : "some_data_id"
}
在这种情况下,将不显示推送通知,
因此,在后台获取中,您可以执行获取并触发本地通知。本地通知可以立即触发吗?本地通知是否需要与推送通知相同的权限?我的应用程序询问用户是否允许使用推送通知,这与本地权限相同?是否可以立即触发本地通知>>是的,本地通知不需要任何权限,但您需要权限,因为您也会收到远程通知。啊,对不起。似乎在iOS8上本地通知需要一些权限,请检查这有点混乱不?让应用程序请求远程通知和本地通知的权限…担心这会让用户却步..我认为这是相同的权限。如果远程推送通知覆盖您,那么本地推送通知也覆盖您。