和WebChromeClient有关
mWebview.WebChromeClient(new WebChromeClient(){})或者自定义一个MyWebChromClient extends WebChromeClient
重写
onShowFileChooser 方法
private ValueCallback<Uri[]> mUploadCallbackAboveL;
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
mUploadCallbackAboveL = filePathCallback;
//camera(); 你的调用相机的方法
//ChooseImg.fromtuku(mActivity); 你的调用图库的方法
return true;
}
回调处理
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
Uri result=null;
if (data == null) {
if ( mUploadCallbackAboveL != null ) {
mUploadCallbackAboveL.onReceiveValue(null);
mUploadCallbackAboveL = null;
}
return;
}else{
if (null == mUploadCallbackAboveL ) {
return;
}
}
result= data.getData(); 你调用相机或图库得到的uri.
if(result!=null){
mUploadCallbackAboveL.onReceiveValue(new Uri[]{result});
mUploadCallbackAboveL = null;
}
super.onActivityResult(requestCode, resultCode, data);
}