Android webview上传图片(适配3.0,4.0,5.0,6.0)
来源:互联网 发布:阿里云ecs sn型号 编辑:程序博客网 时间:2024/05/26 07:30
最近有个h5页面上传图片的需求,适配起多版本来,真是麻烦呀
废话不多说,上代码
private ValueCallback<Uri> mUploadMessage; /** * 适配5.0系统 */ private ValueCallback<Uri[]> mUploadMessage5; private final static int FILECHOOSER_RESULTCODE = 1;private class WebViewChromeClient extends WebChromeClient {public void openFileChooser(ValueCallback<Uri> uploadFile) { mUploadMessage = uploadFile; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("image/*"); startActivityForResult( Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE); } public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType) { openFileChooser(uploadFile); } public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType, String capture) { openFileChooser(uploadFile); } //适配5.0系统 @TargetApi(Build.VERSION_CODES.LOLLIPOP) public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) { mUploadMessage5 = filePathCallback; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("image/*"); startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE); return true; } }
然后再给webview设置上这个 webView.setWebChromeClient(new WebViewChromeClient());
继续
protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.e("xingyun", "request" + requestCode +" result" + resultCode); if (requestCode == FILECHOOSER_RESULTCODE) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ if (null == mUploadMessage5) return; if (resultCode == RESULT_CANCELED) { if (mUploadMessage5 != null) { mUploadMessage5.onReceiveValue(null); mUploadMessage5 = null; return; } } }else { if (null == mUploadMessage) return; if (resultCode == RESULT_CANCELED) { if (mUploadMessage != null) { mUploadMessage.onReceiveValue(null); mUploadMessage = null; return; } } } if (data==null) return; Uri result = data == null || resultCode != RESULT_OK ? null : data .getData(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mUploadMessage5.onReceiveValue(new Uri[]{result}); } else { mUploadMessage.onReceiveValue(result); }// mUploadMessage.onReceiveValue(result);// mUploadMessage = null; } }
完、
1 0
- Android webview上传图片(适配3.0,4.0,5.0,6.0)
- Android WebView 上传图片
- android使用webview上传文件(图片)
- Android Webview upload 图片上传
- android webview中上传图片
- Android webview html上传图片问题
- Android WebView关于图片/文件上传
- android webview打开本地图片上传
- Android webview与js交互上传图片
- Android WebView 上传图片文件有坑
- android webview 弹出图片选择器上传文件
- Android webview h5 图片,拍照,视频上传
- Webview上传图片(图片/拍照)
- android项目从零开始 Android webview支持 文件上传、图片上传
- Android webview实现上传图片的效果(图片压缩)
- webview上传图片
- WebView 支持上传图片
- Webview图片上传方法
- oj4976 硬币
- leetcode No55. Jump Game
- linux source 解析
- Android 第二章
- impossible的真正含义
- Android webview上传图片(适配3.0,4.0,5.0,6.0)
- HDU 5773 The All-purpose Zero 第四场多校赛 LIS变形(最长上升子序列)
- Python 函数作用域
- JAVA输入输出流
- Hadoop:HDFS的健壮性设计
- jQuery—常规选择器
- Java基础学习总结(44)——10个Java 8 Lambda表达式经典示例
- [文章摘要] CourtVision: New Visual and Spatial Analytics for the NBA
- hdu 5616 Jam's balance(简单dp)