private class RongWebChromeClient extends WebChromeClient {
private RongWebChromeClient() {
}
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
mProgressBar.setVisibility(View.GONE);
} else {
if (mProgressBar.getVisibility() == View.GONE) {
mProgressBar.setVisibility(View.VISIBLE);
}
mProgressBar.setProgress(newProgress);
}
super.onProgressChanged(view, newProgress);
}
public void onReceivedTitle(WebView view, String title) {
setTitle(title);
}
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
uploadMessageAboveL = filePathCallback;
showPicDialog();
return true;
}
SelectMediaUtil selectMediaUtil;
private void showPicDialog() {
final BottomSingleDialog bottomSingleDialog = new BottomSingleDialog(this, new BottomSingleDialog.DialogClickListener() {
@Override
public void selectItem(View view, String value) {
if ("拍照或录像".equals(value)) {
// 拍照或录像
Intent intent=new Intent(MyDanceWebActivity.this, VideoActivity.class);
startActivityForResult(intent,PERMISSION_REQUEST_VIDEO_CODE);
} else{
// 视频
if(selectMediaUtil==null){
selectMediaUtil=new SelectMediaUtil();
}
selectMediaUtil.select(MyDanceWebActivity.this, SelectMediaUtil.SelectType.video);
}
}
});
bottomSingleDialog.dispaly("拍照或录像", "视频");
bottomSingleDialog.cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSingleDialog.dismiss();
if(uploadMessageAboveL!=null){
uploadMessageAboveL.onReceiveValue(null);
uploadMessageAboveL=null;
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode!=RESULT_OK){
if(uploadMessageAboveL!=null){
uploadMessageAboveL.onReceiveValue(null);
uploadMessageAboveL=null;
}
return;
}
if(requestCode==PERMISSION_REQUEST_VIDEO_CODE){
String videoUrl=data.getStringExtra("vediourl");
Log.e("aaa","拍摄:"+videoUrl);
Uri uri = Uri.fromFile(new File(videoUrl));
uploadMessageAboveL.onReceiveValue(new Uri[] { uri });
uploadMessageAboveL=null;
}else if(selectMediaUtil!=null&&requestCode==selectMediaUtil.REQUEST_CODE_SELECT){
String videoPath = selectMediaUtil.onActivityResult(requestCode, resultCode, data);
Log.e("aaa","选择:"+videoPath);
Uri uri = Uri.fromFile(new File(videoPath));
uploadMessageAboveL.onReceiveValue(new Uri[] { uri });
uploadMessageAboveL=null;
}
}