前言
WebView显示Html页面,有时需要显示手机选择的图片。
开始使用Base64,方便快捷。但是产品经理改成需要大图预览,悲剧了,Base64就不太清楚了。所以的换个方式。
技术要点
- webview与native的交互
- webview显示本地图片
- webview加载大量图片的问题(这个后期有时间在研究补充~~~)
webview与native的交互
交互方式有很多,如jsBridge,各个版本大同小异,参考资料也很多,就不展开。
这里就使用最简单的:loadUrl(javascript:方法(参数))的方式。

webview显示本地图片
注意申请权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAG"/>
加载本地文件必须要设置的WebSettings
WebSettings.setAllowFileAccess(true)。
有个坑,放服务器不行,具体的可以参考这篇文章。
获取本地图片

看一下效果
html页面就很简单了如图:

最后APP的效果:

如果android 9.0 上无法显示,报错:net:ERR_CLEARTEXT_NOT_PERMITTED,可以参考我的这篇文章。
网友评论