iOS WebView 加载本地资源(图片,文件等)

NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil];  NSURL *url = [NSURL fileURLWithPath:path];  NSLog(@"%@", [self mimeType:url]);  //webview加载本地文件,可以使用加载数据的方式  //第一个诶参数是一个NSData, 本地文件对应的数据  //第二个参数是MIMEType  //第三个参数是编码格式  //相对地址,一般加载本地文件不使用,可以在指定的baseURL中查找相关文件。  //以二进制数据的形式加载沙箱中的文件,  NSData *data = [NSData dataWithContentsOfFile:path];  [self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];  
NSString *html;NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];NSString *htmlFilePath=[cachePath stringByAppendingPathComponent:@"123.html"];//    NSString *html=[[NSString alloc]initWithContentsOfFile:htmlFilePath encoding:NSUTF8StringEncoding error:nil];NSURL *baseURL= [NSURL fileURLWithPath:htmlFilePath];if ([[NSFileManager defaultManager] fileExistsAtPath:htmlFilePath]) {NSString *string = [NSString stringWithContentsOfFile:htmlFilePathencoding:NSUTF8StringEncodingerror:nil];if (string) {html = string;}}
//    NSString *path = [[NSBundle mainBundle] bundlePath];
//    NSURL *baseURL2 = [NSURL fileURLWithPath:path];[self.webView loadHTMLString:html baseURL:baseURL];

至于在沙盒里面的图片,想加载到web里面,发现在模拟器里面是正常,然后再真机上加载不出来

参考这篇文章 iOS Native加载H5中的图片  github  源码:https://github.com/CoderJackyHuang/iOSLoadWebViewImage

多次尝试,无果,找资料时发现下面的方法可以加载沙盒中图片

NSData *imageData=[NSData dataWithContentsOfFile:imagePath];//imagePath :沙盒图片路径
NSString *imageSource = [NSString stringWithFormat:@"data:image/jpg;base64,%@",[imageData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]];
NSString *strJs=[NSString stringWithFormat:@"document.images[0].src='%@'",imageSource];
[webView evaluateJavaScript:strJs completionHandler:^(id _Nullable response, NSError * _Nullable error) {NSLog(@"webView response: %@ error: %@", response, error);}];

 

转载于:https://www.cnblogs.com/dhui69/p/5596917.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本文以H264视频流为例,讲解解码流数据的步骤。

本文以H264视频流为例,讲解解码流数据的步骤。 为突出重点,本文只专注于讨论解码视频流数据,不涉及其它(如开发环境的配置等)。如果您需要这方面的信息,请和我联系。 准备变量 定义AVCodecContext。如…

2008-2021年商业银行数据(农商行、城商行、国有行、股份制银行)

2008-2021年商业银行数据(农商行、城商行、国有行、股份制银行) 1、时间:2008-2021年 2、范围:1700银行 3 、指标:证券简称、year、证券代码、资产总计、负债合计、所有者权益合计、利润总额、净利润、贷款总额、存…

EPSON 任务同步 改写

有时需要在多个任务执行之前来使它们同步。如果预先知道执行每项任务所需要的时间,它们就可以通过简单地等待由最慢的任务产生的信号来实现同步。然而,如果不知道那个任务是最慢的,就需要使用一个更复杂的同步化机制,如下所示VAL …

线程池的简单使用

创建指定线程数量的线程池 private static ExecutorService scheduledTaskFactoryExecutor null;private boolean isCancled false;private static class ThreadFactoryTest implements ThreadFactory { Overridepublic Thread newThread(Runnable r) { Thread threa…

异常--自定义异常类

为什么要调用父类构造器? http://blog.csdn.net/rockpk008/article/details/52951856 转载于:https://www.cnblogs.com/dwj-ngu/p/6576382.html

利用ffmpeg来进行视频解码的完整示例代码

(转)利用ffmpeg来进行视频解码的完整示例代码(H.264) Decode() { FILE * inpf; int nWrite; int i,p; int nalLen; unsigned char * Buf; int got_picture, consumed_bytes; unsigned char *DisplayBuf; Displ…

安卓观看免费视频

http://www.imooc.com/search/course?wordsAndroid%E6%94%BB%E5%9F%8E%E7%8B%AE%E7%AC%AC%E4%B8%80%E8%AF%BE&page3 http://www.imooc.com/course/list?candroid&src360onebox http://www.bilibili.com/video/av2788563/index_4.html http://www.imooc.com/course/pr…

EtherCAT 网站链接

http://www.ethercat.org.cn/cn.htm EtherCAT技术介绍 EtherCAT系统组成和工作原理 EtherCAT采用主从式结构,主站PC机采用标准的100Base-TX以太网卡,从站采用专用芯片。系统控制周期由主站发起,主站发出下行电报,电报的最大有效数…

IEC 6-1131/3的5种标准编程语言

用于开发控制系统和商业管理系统的TRACE MODE6编程工具面向不同领域的软件工程师. TRACE MODE6包含的五种编程语言为:Techno SFC、Techno LD、Techno FBD、Techno ST和Techno IL. 这些语言是下列IEC 6-1131/3标准语言的扩展: SFC(顺序功能图…

ngRx 官方示例分析 - 4.pages

Page 中通过构造函数注入 Store,基于 Store 进行数据操作。 注意 Component 使用了 changeDetection: ChangeDetectionStrategy.OnPush. OnPush means that the change detectors mode will be set to CheckOnce during hydration. /app/containers/collection-page…

用ffmpeg把yuv格式转化为mpeg格式

http://blog.sina.com.cn/s/blog_5f5ad6a90100cs5k.html

方法:查询MongoDB数据库中最新一条数据(JAVA)

使用JAVA语言查询MongoDB中某个数据库某个集合的最新一条数据&#xff1a; MongoCollection<Document> cpu MongoClient.getDatabase("sysmgr").getCollection("cpu"); //获取所需集合 Document dbo cpu.find().sort(descending("time"…

NoPause/NoEmgAbort的任务 与后台任务的区别

NoPause/NoEmgAbort的任务示例 下面的例子显示了一个程序&#xff0c;可以监视控制器的错误并根据错误编号在发生错误时切换I/O On/Off。 Function main Xqt ErrorMonitor, NoEmgAbort : FendFunction ErrorMonitor Wait ErrorOnIf 4000 < SysErr And Syserr < 5999 T…

30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)(转)

出处&#xff1a;http://www.cnblogs.com/best/p/6582294.html 目录 一、界面预览二、PSD源文件预览三、工具分享四、资源说明五、素材下载网站六、下载去年八月时要做一个OA系统为了后台界面而烦恼&#xff0c;后来写了一篇博客&#xff08;《后台管理UI的选择》&#xff09;介…

Linux 查看服务器开放的端口号

在讨论这个问题前&#xff0c;我们先来了解一下物理端口、逻辑端口、端口号等计算机概念。 端口相关的概念&#xff1a; 在网络技术中&#xff0c;端口&#xff08;Port&#xff09;包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口&#xff0c;如ADSL Modem、集…

VC的文件路径为什么要用双斜杠

在编程时&#xff0c;打开文件的路径在用单斜杠时&#xff0c;会出现问题&#xff0c;例如&#xff1a; image cvLoadImage("C:\Users\lyb\Documents\Visual Studio 2013\Projects\smooth\Debug\pic.png", 0);这样的写法在编译时&#xff0c;不会出现编译错误&#…

FFMpeg中apiexample.c例子分析——解码分析

FFMpeg中apiexample.c例子分析——解码分析 收藏 我们直接从 video_decode_example() 函数开始讲&#xff0c;该函数实现了如何去解码一个视频文件&#xff0c;以 .mpeg 文 件为例。 &#xff08; 1 &#xff09;将缓存的末尾清 0 &#xff0c;从而确保读操作不会越界导致破…

[转]整理一些好的开源项目

首先说明&#xff0c;要想找开源项目&#xff0c;当然是Github&#xff01; 另外oschina上面也可能有你要的&#xff0c;这个是分类的链接&#xff1a;http://www.oschina.net/project/tags&#xff0c;比如这个是一个Python的相关开源资源&#xff1a;http://www.oschina.net/…

android是32-bit系统还是64-bit系统

转自&#xff1a;http://www.cnblogs.com/pengwang/archive/2013/03/11/2954496.html 电脑CPU分32位和64位&#xff0c;这个我们都知道。用了这么长时间的android手机&#xff0c;突然有个疑问&#xff1a;android OS运行在多少位的CPU上呢&#xff1f; android应用程序是基于D…