** 公司有需求,需要加载ios的图片到ionicAPP上,这让我这个Android开放转成ionic开放的ios小白伤透来脑筋**
第一步 寄希望于 第三方公开的插件,
- 插件地址:https://github.com/terikon/cordova-plugin-photo-library
- 对目前的ionic 版本会有兼容问题,为什么会这么多问题呢?因为作者不打算更新了,正在找其他人接手
- WKwebview不支持里面的url加载,要手动降级成UIwebview
- 依赖的cordova-plugin-add-swift-support 包有问题,需要手动改插件里的plugin.xml 然后重新从本地添加插件,我改成了版本1.7.2
- 里面的方法应该基本上满足一般图片加载需求了,但是我的需求比较变态,不光要显示,还要计算所有图片md5值,还要快速加载,还要上拉刷新,还要判断md5值对图片区别对待.....
第二步 anyway,第三方的插件不满足我的需求,于是在老板的强烈要求下,我不得不自己修改插件。
- 如何创建插件:https://www.jianshu.com/p/19435487f8b1
- 在这里还是要很感谢cordova-plugin-photo-library的作者的,虽然代码写的其实一般,但是让我少走了很多弯路。让我知道一个支持swift语言的cordova ios插件如何编写。
第三步 不断的踩坑填坑
- 部分图片加载不出来
- 那些加载不出来的图片都只能请求到一天很小的txt,内容还看不到,我是在safari调试的网络那一块看到的,后来发现原来是因为请求的url中的图片的高度和宽度设置的太大了,导致部分图片可能无法计算出正确的图片数据来,最后我降低来图片的高度和宽度,设置成100*100,几乎所有的缩略图都加载出来了。(或者直接请求image-data数据)
- 计算hash值(公司需求,判断文件用的)
- 解决思路是在加载所有图片的过程中,对imageData计算hash值,然后添加到返回值里。