webview解决上传文件的问题
来源:互联网 发布:ppt数据分析图表模板 编辑:程序博客网 时间:2024/06/05 18:03
webview解决上传文件的问题
用webview打开一些网页是可能会遇到需要上传文件的情况
解决办法重写WebChromeClient:
解决办法如下:
webView.setWebChromeClient(new WebChromeClient() { // public void onProgressChanged(WebView view, int progress) { startProgressDialog(); if (progress == 100) { stopProgressDialog(); } } // For Android 3.0+ public void openFileChooser(ValueCallback<Uri> uploadMsg) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("*/*"); MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE); } // For Android 3.0+ public void openFileChooser( ValueCallback uploadMsg, String acceptType ) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("*/*"); MainActivity.this.startActivityForResult( Intent.createChooser(i, "File Browser"), FILECHOOSER_RESULTCODE); } //For Android 4.1 public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){ mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("*/*"); MainActivity.this.startActivityForResult( Intent.createChooser( i, "File Browser" ), MainActivity.FILECHOOSER_RESULTCODE ); } // For Android 5.0+ public boolean onShowFileChooser (WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) { mUploadCallbackAboveL = filePathCallback; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("*/*"); MainActivity.this.startActivityForResult( Intent.createChooser(i, "File Browser"), FILECHOOSER_RESULTCODE); return true; } }); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==FILECHOOSER_RESULTCODE) { if (null == mUploadMessage && null == mUploadCallbackAboveL) return; Uri result = data == null || resultCode != RESULT_OK ? null : data.getData(); if (mUploadCallbackAboveL != null) { onActivityResultAboveL(requestCode, resultCode, data); } else if (mUploadMessage != null) { mUploadMessage.onReceiveValue(result); mUploadMessage = null; } } } @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void onActivityResultAboveL(int requestCode, int resultCode, Intent data) { if (requestCode != FILECHOOSER_RESULTCODE || mUploadCallbackAboveL == null) { return; } Uri[] results = null; if (resultCode == Activity.RESULT_OK) { if (data == null) { } else { String dataString = data.getDataString(); ClipData clipData = data.getClipData(); if (clipData != null) { results = new Uri[clipData.getItemCount()]; for (int i = 0; i < clipData.getItemCount(); i++) { ClipData.Item item = clipData.getItemAt(i); results[i] = item.getUri(); } } if (dataString != null) results = new Uri[]{Uri.parse(dataString)}; } } mUploadCallbackAboveL.onReceiveValue(results); mUploadCallbackAboveL = null; return; }
就可以了
0 0
- webview解决上传文件的问题
- 解决WebView无法上传文件的缺陷
- 解决android中使用webview选择文件上传问题
- 解决WebView文件上传无法重复选择问题
- webview的文件上传
- Android使用webview加载网页,解决上传文件适配3.0、4.0、5.0手机存在的问题。
- Android WebView上传文件的问题 AlertDialog取消选择
- 关于webview上传文件(图片)遇到的问题
- 解决上传大文件失败的问题
- 使用WebView遇见的问题(WebView中上传照片或文件) - android
- 解决文件上传服务器后,文件有BOM的问题
- 解决:上传文件按钮样式,fileupload 样式,同时解决后台得不到上传文件的信息问题
- Android的webView支持文件上传
- Webview上传文件的那些坑
- WebView上传文件遇到的坑openFileChooser
- android WebView的网页上传文件
- Webview上传文件的那些坑
- android webview无法上传文件的解决方案
- Activity生命周期(二)
- FreeMarker基础笔记
- dump_stack()使用方法
- 解决虚拟机桥接模式上不了网的问题【转载】
- cell代码 右侧 添加向右箭头
- webview解决上传文件的问题
- 故障案例:mongodb 连接副本集很慢
- 常用CSS样式
- AVLTree 代码优化
- golang: beego自动化部署
- Android6.0权限管理
- Android上下文context
- Openv Switch 完全使用手册
- ElasticSearch : IN equivalent operator in ElasticSearch