ios 编辑器2-基于wkwebview编辑器加载本地html资源

内容不多,不会长篇大论,重在呈现结果,给有相同问题的小伙伴,先实现再说

android简单多了

现在是20200828,再过几个月,ios就要强制用WKWebview了。所以,ios问题多,也只能硬磕,下面简写一下研发的演进:

选择本地图片流程

图片插入html的方案

base64

demo中提供的方案是图片压缩后转base64.。但是个人感觉不是很舒服,一是实际效果看,图片转base64后的字符串很长,二是上传服务端也不友好

所以,考虑研究直接根据路径加载图片

路径加载图片

WKWebView加载本地图片的几种方案

起初查资料看到文中方案4,有个大致方案,就是html资源和图片拷贝到沙盒里,同目录就行,这样就简单了,图片加载: src用file://或相对路径都可以

demo研究,html等资源是在bundle中,图片也是工程里临时拖进去测试的。。所以,没有实际测试沙盒路径下的图片加载,实际开发时候,遇到棘手的问题,下面图片放哪的问题细说

GCDWebServer

另外还有模拟本地服务的方案,就是webview进行http://等本地的服务请求加载图片资源,具体实现去百度吧。个人不喜欢这方案,等于说图片的加载交给了webview做网络请求,但是真正发布文章的时候,还要拿到图片上传给公司服务器,麻烦

图片放哪的问题

上面说通过html资源和图片同目录实现本地图片加载,梳理目录的时候,想着document或library更正宗一些,放tmp经常被删除导致频繁的拷贝图片进去

由于我不确定是谁的原因的原因,document和library做目录,图片是加载不到的,各种加载方式都试了还是不行,期间尝试放tmp里可以加载出来,然后继续查资料,没有原因,只有结论:放tmp里

//    NSURL *baseURL = [NSURL fileURLWithPath:KOriginalPhotoImagePath isDirectory:YES];
//    [self.editorView loadHTMLString:htmlString baseURL:baseURL];
    
    //loadFileURL方式
//    [self.editorView loadFileURL:url allowingReadAccessToURL:[NSURL fileURLWithPath:KOriginalPhotoImagePath]];
    
    //loadRequest方式
    NSString *tmpWWWFeedback = _sbHtmlPath;
    NSURL *feedbackURL = [NSURL fileURLWithPath:tmpWWWFeedback];
    [self.editorView loadRequest:[NSURLRequest requestWithURL:feedbackURL]];

总结

ok,本文主要说了两点,一是路径问题,二是图片的加载方式问题。没什么技术点,我就是借鉴各位前辈的资料,总结一下,给各位遇到类似问题的小伙伴参考一下

ios 编辑器1-基于WKWebview的编辑器技术方案
ios 编辑器3-基于wkwebview编辑器插入网络图片不显示问题
ios 编辑器4-基于wkwebview编辑器插入视频文件封面问题

你可能感兴趣的:(ios 编辑器2-基于wkwebview编辑器加载本地html资源)