- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
//call 2 web service here.
[self jsonParser:jsonData];
completionHandler(UIBackgroundFetchResultNewData);
}
Я назвал этот метод следующим образомФоновый удаленный доступный веб-сервис уведомления не работает?
-(void)jsonParser:(NSData *)data
{
//[downloader downloadXMLContentsFromURL:actualURL withXML:encrypted];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:actualURL]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:HTTP_REQUEST_TIME_OUT];
[request setHTTPMethod:@"POST"];
NSString *encodedXML = [encrypted urlEncodeUsingEncoding:NSUTF8StringEncoding];
NSString *params = [NSString stringWithFormat:@"%@=%@", REQUEST_PARAMETER_NAME, encodedXML];
[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error:nil];
}];
[postDataTask resume];
//Here call to other service not shown
}
Я включил «Фон Fetch» от возможностей и «Remote Notification»
я должен реализовать этот метод делать?
- (void)application:(UIApplication *)application performFetchWithCompletionHandler: (void (^)(UIBackgroundFetchResult))completionHandler
Это нормально работает, когда приложение активно. Но не работает для приложения в фоновом режиме и закрыто. Когда я открываю приложение, он отлично работает. Я хочу запустить службу в фоновом режиме, когда приложение закрывается. как это исправить? любая помощь будет оценена.
Работал как шарм. Спасибо за ответ. –