在UIWebView中加载本地图片

简介: NSString *imagePath = [[NSBundle mainBundle] resourcePath];imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/...
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资源下载页
目录
相关文章
|
编解码 Android开发
Android 使用VideoView播放本地视频详解
Android 使用VideoView播放本地视频详解
774 2
|
消息中间件 缓存 安全
抱歉,Xposed真的可以为所欲为——终 · 庖丁解码(下)
Xposed的使用不难,API也就那些,难点是: 逆向弄清楚Hook APP的方法调用流程,怎么调,参数都是干嘛的等。 经过反复练习,逆向Hook一个普通的APP(非企业级加固)写出可用的Xposed插件早已驾轻就熟(主要是磨时间),但有一个顾虑一直萦绕心间:不知道Xposed底层的具体实现原理。Tips:Xposed通常只能 Hook java层 及 应用资源的替换,有两个实现版本:4.4前的Dalvik虚拟机实现 和 5.0后ART虚拟机实现,本文针对后者进行分析,同时搭配 Android 5.1.1_r6 源码食用。
1865 0
|
JavaScript 测试技术 Linux
【Docker项目实战】使用Docker部署CodeX Docs文档工具
【4月更文挑战第8天】使用Docker部署CodeX Docs文档工具
586 2
|
6月前
|
机器学习/深度学习 自然语言处理 算法
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
大家都可以通过写 prompt 来和大模型对话,那大模型之前的算法是怎样的,算法世界经过了哪些比较关键的发展,最后为什么是大模型这条路线走向了 AGI,作者用两篇文章共5.7万字详细探索一下。
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
|
9月前
|
C语言
【C语言】符号优先级详解 -《谁与争锋 ! 》
理解C语言中的运算符优先级和结合性是编写正确代码的关键。本文详细介绍了C语言中的各种运算符、它们的优先级和结合性,并通过示例展示了如何正确使用这些运算符。掌握这些知识,将有助于编写出逻辑严谨、结构清晰的C语言程序。
373 8
|
11月前
|
传感器 机器学习/深度学习 人工智能
智能农业机器人:自动化种植与收割
【10月更文挑战第22天】随着科技的发展,智能农业机器人正逐步改变传统农业生产方式,引领农业走向自动化、智能化和高效化的新时代。本文将探讨智能农业机器人在精准种植、智能灌溉、高效收割和病虫害监测等方面的应用及其带来的变革。通过典型案例分析,展示智能农业机器人的优势与挑战,并展望其未来发展趋势。
|
机器学习/深度学习 人工智能 自然语言处理
AIGC多模态学习
7月更文挑战第11天
|
存储 SQL 分布式计算
BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略
BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略
BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略
|
Java 应用服务中间件 API
富文本编辑器Ueditor实战(一)
本文简单说明如何在tomcat中部署ueditor,并举例介绍了他的api以及相关工具栏,用户可以根据需要进行调整。
656 0
富文本编辑器Ueditor实战(一)
|
开发工具 Android开发
Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path
Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path
691 0
Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path