Ios xcode从webview下载文件

Ios xcode从webview下载文件,ios,download,uiwebview,nsurl,Ios,Download,Uiwebview,Nsurl,我的问题是,如果我有uiwebview,当用户单击下载链接时,我想从任何网站下载文件,我想在用户单击该文件时获得该文件的扩展名(文件类型),而不加载url,这样我就可以向他显示警报视图,询问他是否要下载该文件 例如,有这样的URL 这个url上没有扩展名,但当用户点击它时,它会显示mp4、mp3或zip文件 我正在使用这段代码,但它对我来说不太好,还有其他方法吗 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NS

我的问题是,如果我有uiwebview,当用户单击下载链接时,我想从任何网站下载文件,我想在用户单击该文件时获得该文件的扩展名(文件类型),而不加载url,这样我就可以向他显示警报视图,询问他是否要下载该文件

例如,有这样的URL

这个url上没有扩展名,但当用户点击它时,它会显示mp4、mp3或zip文件

我正在使用这段代码,但它对我来说不太好,还有其他方法吗

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

    if (navigationType == UIWebViewNavigationTypeLinkClicked || navigationType == UIWebViewNavigationTypeBackForward || navigationType == UIWebViewNavigationTypeFormSubmitted) {


        NSString *RequestURL     = [NSString stringWithFormat:@"%@",request.URL];

        NSURLSession *session    = [NSURLSession sharedSession];
        [[session dataTaskWithURL:[NSURL URLWithString:RequestURL]completionHandler:^(NSData *data,NSURLResponse *response,NSError *error)
          {
              dispatch_async(dispatch_get_main_queue(), ^{
                  if ([[NSThread currentThread] isMainThread])
                  {
                      if (!error)
                      {
                          NSString *mime = [response MIMEType];
                          CFStringRef mimeType  = (__bridge CFStringRef)mime;
                          CFStringRef uti       = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL);
                          CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension);
                          NSString    *FileTybe = (__bridge NSString *)(extension);

                          NSLog(@"Type =  %@",FileTybe);
                      }else
                      {
                          UIAlertController* alert = [UIAlertController alertControllerWithTitle:nil
                                                                                         message:@"internt issu"
                                                                                  preferredStyle:UIAlertControllerStyleAlert];
                          UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"try again" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

                          }];
                          [alert addAction:defaultAction];
                          [self presentViewController:alert animated:YES completion:nil];
                      }
                  }
              });

          }]resume];
    }
    return YES;
}

定义“不适合我工作”,因为此代码加载页面,然后显示警报视图您找到解决方案了吗?如果是,那么你可以发布一个合适的解决方案,你是如何解决这个问题的。