点击确定文件扩展名并按下视图控制器

时间:2013-06-13 01:41:38

标签: ios

基本上我需要知道webview如何知道正在使用哪种文件扩展名(png,zip等),然后推送另一个视图控制器。

我之前没有使用文件扩展名代码就试过了,它会推送另一个视图就好了。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
        if(navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *theRessourcesURL = [request URL];


            DetailViewController *vc = [[DetailViewController alloc] init];
            [vc downloadURL:theRessourcesURL userInfo:nil];
            [self.navigationController pushViewController:vc animated:YES];

            dlvc.delegate = self;

        }

        return YES;
    }

非工作代码:

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

    if(navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSURL *theRessourcesURL = [request URL];
        NSString *fileExtension = [theRessourcesURL pathExtension];
        if ([fileExtension isEqualToString:@"png"]) {

            MYViewController *vc = [[MYViewController alloc] init];
            [dlvc downloadURL:theRessourcesURL userInfo:nil];
            [self.navigationController pushViewController:vc animated:YES];

            vc.delegate = self;
        }            
        else{}
    }       
    return YES;
}

大部分工作。

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


    if(navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSURL *theRessourcesURL = [request URL];
        NSString *fileExtension = [theRessourcesURL pathExtension];
        NSLog(@"fileExtension is: %@", fileExtension);
        if ([fileExtension isEqualToString:@"php"] || [fileExtension isEqualToString:@".png"] || [fileExtension isEqualToString:@".zip"] || [fileExtension isEqualToString:@".deb"] || [fileExtension isEqualToString:@".jpg"] || [fileExtension isEqualToString:@".mp3"]) {

            NSError *error = nil; //error setting
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
            NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Downloads"];

            if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
                [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder

            HCDownloadViewController *dlvc = [[HCDownloadViewController alloc] init];
            [dlvc downloadURL:theRessourcesURL userInfo:nil];
            [self.navigationController pushViewController:dlvc animated:YES];

            dlvc.delegate = self;

            return NO;
        }       
        else{}
    }
        return YES;
}

我也尝试使用它作为入门基础而没有成功,因为我不使用界面构建器,所以我不知道是否可以使用IBActions(如果它们我可以不知道如何正确实现它们)。 How to download files from UIWebView and open again

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

也许你应该将if([fileExtension isEqualToString:@“png”] || ...)置于if(navigationType == UIWebViewNavigationTypeLinkClicked){}并重试?