在这里说明一下图片加载不出来的原因:因为我拿不到图片文件夹的绝对路径,只能拿到具体某张图片的相对路径(解释一下,在Xcode中,所有的资源文件夹都是虚拟的,只是相对于Xcode存在,但实际上是不存在的,所以在项目里是无法获取到某个文件夹的绝对路径的),但是在html页面里的图片路径写的是文件夹的绝对路径,所以当UIWebView加载html页面时,找不到html页面里所指的图片文件夹资源,故而图片显示不出来。
基于这个思路,我就想试着更改html页面的图片路径看看效果,结果试了很多种方法还是不行,最后都要放弃了。我知道是图片路径的问题导致图片不显示,但就是想不出办法去获取文件夹的绝对路径,我思考了一个星期都不得要领,最后问了一下同做该项目的安卓同事,终于完美的解决了这个让我头痛许久的问题。具体的解决思路是:将资源压缩添加到项目中,然后拷贝到沙盒目录里,项目启动后解压资源压缩包,并将存到沙盒目录的文件夹路径作为UIWebView的baseURL,这样图片的绝对路径就可以获取到了。
在这里解压资源包我用的是SSZipArchive这个三方库,解压只需要调用它的方法并设置代理即可,其他什么都不用做,非常简单方便。但是值得注意的是,我们解压成功之后,应该将沙盒里的资源包删除,否则每次运行项目都会解压一遍,容易造成内存的浪费,且效率不高。
第一次写帖子,希望能帮助到大家,最近在项目中使用h5和iOS UIWebView交互时遇到一些问题,跟大家分享一下,写的不对的地方,求大佬们指点
iOS 使用UIWebView加载h5页面,h5页面有一个input标签如:<input id="fileId" type="file" accept="image/png,image/jpeg" multiple>用于上传文件,点击会调用iOS的相册或相机、浏览等,如图1,简单说一下multiple属性限制单选和多重选择
input标签中无论怎么写multiple属性,UIWebView加载的文件上传都是多重选择。经发现UIWebView会自动为HTML <input type="file">标签添加多个属性。这种行为与iOS版本不同,差不多算是UIWebView的bug.
解决就非常简单了,使用WKWebView替换UIWebView,WKWebView优于UIWebView,正确处理<input type="file">。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)