这个功能已经写完快两个月了,马上要把这个H5功能改成原生的,也就是说之前的代码暂时没有别的地方需要用,所以准备匿了,现在来分享一下过程应该不算晚
说一下这个功能在Android的Webview上实现思路是一样的,但是iOS这边稍微麻烦了一点,主要是因为UIWebview和WKWebview的区别以及iOS的版本问题,因此需要兼容两种办法——iOS11.*以前和以后
需求:在WKWebview的H5页面中需要选择图片(调用自定义的图片选择器而不是系统相册)然后再页面中预览,点击上传按钮后开始上传(由H5进行上传)
语言用的是最新的Swift4.0,配合之前的一篇文章WKWebview与Javascript互相调用传参(Swift)服用更佳
Part 1. 获取图片并在H5中预览
首先第一步是H5中点击选择图片按钮唤起自定义图片选择器,这个是Javascript和原生的交互就不再提了
唤起了自定义图片选择器后选择完图片获取的图片数据是UIImage格式的(系统相册返回的也是)这玩意儿是无法直接返回给H5的,那么我们发现选择图片返回的还有一个Path信息(图片在手机系统里的物理路径)这个Path信息唯一的毛病是系统限制无法读取的,因为安全权限的问题,所以我们必须要把它存在应用程序的沙盒路径里。
你非要跟我犟我也没办法,如果你碰到Promise dined的问题的时候回来看这里
存储图片的代码let fullPath = URL(fileURLWithPath: NSHomeDirectory().appending("/Documents/WKWebviewTmpImg/").appending(filename), isDirectory: false)
try! UIImageJPEGRepresentatio