在UIWebView中加载本地图片

NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSString * js = [NSString stringWithFormat:@"document.images[0].src='file:/%@//%@'",imagePath,@"test.png"];
    
[infoWebView stringByEvaluatingJavaScriptFromString:js];
NSString *path = [infoWebView stringByEvaluatingJavaScriptFromString:@"document.images[0].src"];

像一般情况下一样用file scheme访问就可以了

如果加载不了的话,多半是因为html页面还未加载完,你可以这样使用:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    webView.delegate = self;
    [webView loadHTMLString:@"<html><head></head><body><img class='test' width=100% height=100% src=''></body></html>" baseURL:nil];
    [self.view addSubview:webView];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - UIWebViewDelegate methods
-(void)webViewDidFinishLoad:(UIWebView *)webView{
    NSString *imagePath = [[NSBundle mainBundle] resourcePath];
    imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
    imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
    imagePath = [NSString stringWithFormat:@"file:/%@//%@",imagePath,@"test.png"];
    NSString * js = [NSString stringWithFormat:@"document.images[0].src='%@'",imagePath];
    [webView stringByEvaluatingJavaScriptFromString:js];
    NSString *path = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
    NSLog(@"%@",path);
}

CSDN资源下载页
上一篇:最长公共前缀 js 实现代码


下一篇:16-jsDOM高级