公司有个业务需求,需要在H5页中可以分别调起相同中的相机、相册。拿到该H5页看了一下,H5中调起相机和打开相册的源码分别是:
#调起相机
<input type="file" accept="image/*" capture="camera"/>
#打开相册
<input type="file" accept="image/*" multiple="multiple"/>
从这两个代码分析出打开相机可能用到capture属性,打开相册中的multiple属性应该是表示可以选择多张图片。在Android Webview中,当type为file的<input>标签被点击时,WebChromClient中的onShowFileChooser方法将被回调,因此,打开相册或者调起系统相机的业务逻辑可以从这里开始。
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams);
接下来,分析一下这个方法,怎样才能知道何时打开相册,何时调起相机。
这个方法只有3个参数,分别是
webview:这个就不用说了;
filePathCallback:回调接口,返回选择到