在开发中有时候会用到H5调用本地图片或者相机,像第三方的实名认证,在线客服等等都需要上传图片。H5中只需要通过调用即可,ios是可以的实现的,不需要自己处理,除非客户端压缩图片,但是Android中需要自己处理,比较坑,本文记录H5调用本地图片或者相机的实现过程以及遇到的问题。
先看效果图
H5
H5主要是通过input标签来获取图片
Android
通过WebView加载h5页面,监听WebView对应的方法,实现自己的逻辑。
WebView初始化,放开对应的权限
private fun initWebView() {
val settings = mWebView.settings
settings.javaScriptEnabled = true
settings.javaScriptCanOpenWindowsAutomatically = true
//自适应屏幕
settings.layoutAlgorithm = SINGLE_COLUMN
settings.loadWithOverviewMode = true
settings.domStorageEnabled = true
settings.databaseEnabled = true
settings.setSupportZoom(false)
mWebView.isHorizontalScrollBarEnabled = false
mWebView.isVertic