Android学习之实现WebView中input="file"选择文件,处理选择图片无法返回类型问题
来源:互联网 发布:xp限制安装软件 编辑:程序博客网 时间:2024/04/30 13:24
// js上传文件的<input type="file" name="fileField" id="fileField" />事件捕获 private ValueCallback<Uri> mUploadMessage;private final int FILECHOOSER_RESULTCODE = 1;// 需要自己重写WebChromeClient类,并实现里面的三个方法。如下:private class MyWebChromeClient extends WebChromeClient{ // Android < 3.0 调用这个方法 public void openFileChooser(ValueCallback<Uri> uploadMsg) { this.openFileChooser(uploadMsg, "*/*"); } // 3.0 + 调用这个方法 public void openFileChooser( ValueCallback<Uri> uploadMsg, String acceptType ) { this.openFileChooser(uploadMsg, acceptType, null); } // Android > 4.1.1 调用这个方法 public void openFileChooser(final ValueCallback<Uri> uploadMsg, String acceptType, String capture) { mUploadMessage = uploadMsg; // 使用uploadMsg返回获取到的文件路径 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult(intent, FILECHOOSER_RESULTCODE); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == FILECHOOSER_RESULTCODE) { if (mUploadMessage == null) return; Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData(); try {mUploadMessage.onReceiveValue(Uri.fromFile(new File(getRealFilePath(context, result))));} catch (Exception e) {mUploadMessage = null; e.printStackTrace();} mUploadMessage = null; }} /** * 根据uri获取图片的真真实路径 * @param context * @param uri * @return */ private String getRealFilePath(Context context, Uri uri ) { if ( null == uri ) return null; final String scheme = uri.getScheme(); String data = null; if ( scheme == null ) data = uri.getPath(); else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) { data = uri.getPath(); } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) { Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null ); if ( null != cursor ) { if ( cursor.moveToFirst() ) { int index = cursor.getColumnIndex( ImageColumns.DATA ); if ( index > -1 ) { data = cursor.getString( index ); } } cursor.close(); } } return data; }
1 0
- Android学习之实现WebView中input="file"选择文件,处理选择图片无法返回类型问题
- WebView实现html文件选择(input type=file),兼容安卓6.0
- Android-WebView-解决对选择文件<input type="file">无响应
- WebView中支持input的file的选择
- [Cordova] 改进InAppBrowser插件(WebView),让其<input type="file">支持选择文件
- [Cordova] 改进InAppBrowser插件(WebView),让其<input type="file">支持选择文件
- 解决android中使用webview选择文件上传问题
- 不用点击file类型的input弹出文件选择对话框
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- input标签file类型,选择多个文件进行上传
- BASE64编码
- crontab使用详解
- ceph之rbd-nbd
- HTML&CSS——CSS3 Background-size
- Oracle trunc()函数的用法
- Android学习之实现WebView中input="file"选择文件,处理选择图片无法返回类型问题
- sufile网盘下载地址获取工具
- 在MyEclipse、Eclipse中更改Ctrl+Shift+f格式化代码格式
- 进程与线程的一个简单解释
- 剑指Offer——快速排序
- maven中跳过单元测试
- axis2RESTFUL开发客户端
- spring quartz学习总结: 基本任务结构和定义
- Android开发中一些挺有用的方法