首页 编程 软件学院 查看内容

ios后台更新和下载

2015-3-19 16:22 1088 0

摘要: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)lau...
关键词: nbsp CompletionHandle application UIBackgroundFetc NSURLSession NSURLSessionConf session iguration userInfo NSString

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     [application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];     NSLog(@"Launched in background %d",UIApplicationStateBackground == application.applicationState);     return YES; } // 1.利用Background Fetch - (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {     NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];     NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];     NSURL *url = [[NSURL alloc] initWithString:@"http://127.0.0.1/data.json"];     NSURLSessionDataTask *task = [session  dataTaskWithURL:url                                          completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {                                              if (error) {                                                  completionHandler(UIBackgroundFetchResultFailed);                                                  return;                                              }                                              completionHandler(UIBackgroundFetchResultNewData);                                          }];     [task resume]; } // 2.利用Remote Notification /*  推送的内容  {  "aps" : {  "content-available" : 1  },  "content-id" : 42  }  */ - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {     NSLog(@"Received remote notification with userInfo %@", userInfo);         NSNumber *contentID = userInfo[@"content-id"];     NSString *downloadURLString = [NSString stringWithFormat:@"http://yourserver.com/downloads/%d.mp3", [contentID intValue]];     NSURL* downloadURL = [NSURL URLWithString:downloadURLString];         NSURLRequest *request = [NSURLRequest requestWithURL:downloadURL];     NSURLSessionDownloadTask *task = [[self backgroundURLSession] downloadTaskWithRequest:request];     task.taskDescription = [NSString stringWithFormat:@"Podcast Episode %d", [contentID intValue]];     [task resume];     completionHandler(UIBackgroundFetchResultNewData); } - (NSURLSession *)backgroundURLSession {     static NSURLSession *session = nil;     static dispatch_once_t onceToken;     dispatch_once(&onceToken, ^{         NSString *identifier = @"io.objc.backgroundTransferExample";         NSURLSessionConfiguration* sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier];         session = [NSURLSession sessionWithConfiguration:sessionConfig                                                 delegate:self                                            delegateQueue:[NSOperationQueue mainQueue]];     });     return session; }
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部