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

摘要:
https://www.cnblogs.com/dhui69/p/5596917.htmliOSWebView正在加载本地资源(图片、文件等)NSString*path=[[NSBundlemainBundle]pathForResource:@“About.docx”类型:nil];NSURL*url=[NSURLfileURLWithPath:path];NSLog(@“%@”,[selfmim

https://www.cnblogs.com/dhui69/p/5596917.html

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

pastedGraphic.png

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];  

pastedGraphic.png

pastedGraphic.png

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:htmlFilePath

                                                     encoding:NSUTF8StringEncoding

                                                        error:nil];

        

        if (string) {

            html = string;

        }

    }

//    NSString *path = [[NSBundle mainBundle] bundlePath];

//    NSURL *baseURL2 = [NSURL fileURLWithPath:path];

    [self.webView loadHTMLString:html baseURL:baseURL];

pastedGraphic.png

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

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

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

pastedGraphic.png

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='http://t.zoukankan.com/%@'",imageSource];

[webView evaluateJavaScript:strJs completionHandler:^(id _Nullable response, NSError * _Nullable error) {

   NSLog(@"webView response: %@ error: %@", response, error);

        

}];

免责声明:文章转载自《iOS WebView 加载本地资源(图片,文件等)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇多线程详细介绍iOS 推送问题全解答《十万个为啥吖?》下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS开发中WiFi相关功能总结

http://www.cocoachina.com/ios/20160715/17022.html 投稿文章,作者:Haley_Wong(简书) 查漏补缺集是自己曾经做过相关的功能,但是重做相关功能或者重新看到相关功能的实现,感觉理解上更深刻。这一类的文章集中记录在查漏补缺集。 iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiF...

IOS管理文件和目录

  1、常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path  //从一个文件读取数据 -(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr  //向一个文件写入数据 -(BOOL)removeItemAtPath:pa...

iOS获取所有机型

1.手机系统版本:10.3 NSString* phoneVersion = [[UIDevice currentDevice] systemVersion]; 2.手机类型:iPhone 6 NSString* phoneModel = [self iphoneType];//方法在下面 3.手机系统:iPhone OS NSString * ipone...

iOS- 微信支付 (服务器调起支付 )以及回调不成功的原因 不看后悔

写的不错,给留个言哈... 一. 支付准备工作 1. 微信相关准备工作 (1) 向微信官方开通支付功能. 这个不是前端的工作. (2) 导入官方下载的微信支付SDK包. 我用的是微信开放平台下载的SDK 1.6.2 (3) 导入必要的库文件 SystemConfiguration.framework, libz.dylib, libsqlite3.0.d...

iOS开发网络数据之AFNetworking使用

http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库。最新版本支持session,xctool单元测试。网络获取数据一直是手机软件的重中之重,如果处理的不好,会造成很差的用户体验。随着ASIHTTPRequest的停止更新,更换网络库是必然的事情,AFNetworking...

iOS沙盒目录结构解析

iOS沙盒目录结构解析  iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713   出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭...