Получение mimetypes файлов, загруженных в UIWebView - PullRequest
2 голосов
/ 25 апреля 2011

Я пытаюсь загрузить MIME-типы файлов в UIWebView, чтобы я мог загрузить их с помощью метода, который у меня сейчас есть, иногда работает, есть ли способ сделать это лучше?

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{   
   NSURL *url = request.URL;
   NSString *main = url.absoluteString;
   //enter code here currentURL = main;
   NSURLRequest *req  = [NSURLRequest requestWithURL:url];
   NSURLConnection *conn = [NSURLConnection connectionWithRequest:req delegate:self];
   [conn start];
   return YES;
}

NSString *mime = [response MIMEType];
NSLog(@"%@",mime);
DownloadManagerAppDelegate *delegate = (DownloadManagerAppDelegate *)[[UIApplication sharedApplication] delegate];

DLMan *downloadView = [[DLMan alloc] init];
if ([mime rangeOfString:@"application/x-compressed"].length>0 || [mime rangeOfString:@"application/x-zip-compressed"].length>0  || [mime rangeOfString:@"application/zip"].length>0 || [mime rangeOfString:@"multipart/x-zip"].length>0) 
{
  self.tabBarController.selectedIndex = 1;
  [[delegate myDownloadManager]addDownload:currentURL];
  NSLog(currentURL);
  NSLog(@"download");
}

1 Ответ

3 голосов
/ 25 апреля 2011

В NSURLConnection делегате didReceiveResponse используйте что-то вроде этого:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{
   NSString *mime = [response MIMEType];
}

Поскольку я прочитал, что вы не получаете MIME правильно, вас может заинтересовать другой подход, создайте plist типов MIME, например mimeTypes.plist

(Не обязательно все типы, по крайней мере, типы, с которыми вы собираетесь работать или обрабатывать)

Загрузите их в NSDicionary, используя:

NSString *mainBundlePath = [[NSBundle mainBundle] bundlePath];
NSString *plistPath = [mainBundlePath stringByAppendingPathComponent:@"mimeTypes.plist"];

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath]

Проверьте MIME, выполнив поиск по расширению цели:

[dict valueForKey:@"mp3"];  // will return audio/mpeg.

Пожалуйста, проверьте эту ссылку для списка MIME типов .

...