사용자가 초기에 장치에 저장된 이미지 및 비디오를 가져올 수있는 앱 개발 중입니다. 기기가 네트워크 (모바일 데이터 또는 Wi-Fi)에 연결될 때마다 서버에 업로드해야합니다.NSURLSession을 사용하여 네트워크 연결 대 백그라운드 업로드
이제 NSURLSessionUploadTask
을 사용하면 데이터도 백그라운드로 업로드되지만 네트워크가 없으면 -didCompleteWithError:
대리인에게 콜백이 전송되어 이제 작업이 끝납니다. 이제 장치에 네트워크 연결이있을 때 작업을 다시 시작할 수 있습니다.
내가 도달 가능성을 확인하고 기기에 도달 할 수 있는지 확인하고 싶습니다. 업로드 작업을 시작하십시오.
내가 생각할 수있는 한 가지 방법은 배경 가져 오기을 가져오고 연결을 감지하고 업로드 작업을 예약합니다.
이것은 엔터프라이즈 앱이므로 승인이 필요하지 않습니다.
다음
는NSURLSessionConfiguration *config = [NSURLSessionConfiguration
backgroundSessionConfiguration:@"background" ];
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:config delegate:self
delegateQueue:[NSOperationQueue mainQueue]];
NSURL *url = [NSURL URLWithString:@"http://www.t9l.com/rest/test/httprawdata"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
NSString* [email protected]"nitin=asd";
[request setHTTPBody:[str dataUsingEncoding:NSUTF8StringEncoding]];
self.uploadTask = [upLoadSession uploadTaskWithRequest:request fromFile:filePath] ;
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[self.uploadTask resume];
네트워크를 잃었을 때'-didCompleteWithError :'를 얻을 수 있습니까? 얻은 것을 게시 할 수 있습니까 (예 : 'NSLog (@ "오류 % @", 오류);)? –
@ClayBridges 늦게 답변을 드려 죄송합니다. 업로드 작업을 만들기 위해 코드를 추가했습니다. 그러나이 대리자는 결코 콜백을받지 못합니다 - (void) URLSessionDidFinishEventsForBackgroundURLSession : (NSURLSession *) session – awasthinitin10