android webview 多文件上传,Android网页WebView图片文件上传的问题
Android网页WebView图片文件上传的问题
发布时间:2020-07-13 22:48:15
来源:51CTO
阅读:5922
作者:拾荒者老大
在安卓下,webview上传图片点击是没用的,需要自己写一下.
网上关于这个的很多,基本都是抄来抄去,没什么用的.
这个日期比较新,而且能用
http://blog.csdn.net/djcken/article/details/46379929#comments
就是自定义实现 WebChromeClient
然后重写 openFileChooser 方法,获取ValueCallback valueCallback
当然,要注意不同版本的区别.,但5.0+的项目,就不能用了.回复里有答案.
就是重写 onShowFileChooser 但这次是ValueCallback valueCallback
虽然麻烦点,但能实现
使用腾讯X5内核http://x5.tencent.com/ 不用去考虑那些版本兼容,只要重写openFileChooser 获取ValueCallback valueCallback
在这些方法 可以直接跳转相册或相机,也可以弹出对话框来选择;
只需在onActivityResult 方法获取android.net.Uri 对象就行
跳转相册:
Intent intent = Intent(Intent., );
intent.setDataAndType(MediaStore.Images.Media., );
startActivityForResult(15);
相册结果:Uri uri = data.getData();跳转相机 :private Uri photoUri;
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
photoUri = context.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(16);
相机结果: 直接 photoUri 就行
把图片给网页,用刚才获取的valueCallback
valueCallback.onReceiveValue(uri);
如果用户取消就
valueCallback.onReceiveValue(null);
然后每次都要 uriValueCallback = null;
这些和网上的基本一样,但今天被一个问题坑了很久...
错误日志是这样的
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=18, result=0, data=null} to activity {com.tugouzhong.micromall/com.tugouzhong.user.WebActivity}: java.lang.IllegalStateException: showFileChooser result was already called
at android.app.ActivityThread.deliverResults(ActivityThread.java:3609)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3652)
at android.app.ActivityThread.access$1300(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1368)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5313)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1116)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:809)
Caused by: java.lang.IllegalStateException: showFileChooser result was already called
at com.tencent.smtt.webkit.x$14.a(Unknown Source)
at com.tencent.smtt.webkit.x$14.onReceiveValue(Unknown Source)
at com.tencent.smtt.sdk.o.a(Unknown Source)
at com.tencent.smtt.sdk.o.onReceiveValue(Unknown Source)
at com.test.user.WebActivity.onActivityResult(WebActivity.java:214)
at android.app.Activity.dispatchActivityResult(Activity.java:6240)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3605)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3652)
at android.app.ActivityThread.access$1300(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1368)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5313)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1116)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:809)
这个是用的x5内核的日志,用系统的也是java.lang.IllegalStateException这个问题.
网上找竟然没发现同样问题的人....
自己看了下,原来是在openFileChooser方法里调用了
super.openFileChooser(valueCallback, acceptType, captureType);
把这句删掉就行;
android webview 多文件上传,Android网页WebView图片文件上传的问题相关推荐
- android相册拍照剪切上传封装,安卓,图片裁剪上传真机测试好使,打包后显示:无法保存裁剪的图像...
var IMAGE_UNSPECIFIED = "image/*"; var PHOTOZOOM = 2; // 获取完图片返回key var PHOTOLAT = 1; // 剪 ...
- Android开发笔记(三十三)文本文件和图片文件的读写
文本文件读写 简单文件读写一般是借助于FileOutputStream和FileInputStream,其中FileOutputStream用于写文件,而FileInputStream用于读文件. 写 ...
- php 上传类 缩略图,php图片文件上传类 (附自动生成缩略图) | 学步园
/** 作 者:冻结回忆 (linghunts@163.com); 功 能:文件上传类 支持文件夹自动分组保存(2008-01/09); 时 间:2007-10-17; 创建类:参数(文件域,文件原名 ...
- 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )
文章目录 图形文件准备 ( PNG 文件 ) PNG 文件信息分类 数据块结构 IHDR 数据块 简介 IHDR 数据块 结构 图形文件准备 ( PNG 文件 ) 分析的文件准备 : 1.创建文件 : ...
- java 移动页面中的图片上传_移动端图片操作——上传
上传我们一般都是用"input[type=file]"控件.当你用此控件时,你就授权了网页和服务器访问对应的文件,就可以得到File对象. 友情提示在,在Android手机webv ...
- 把网页放到云服务器上,怎么把网页放到云服务器上
怎么把网页放到云服务器上 内容精选 换一换 Linux操作系统云服务器的安全组出方向已按照元数据获取的前提条件进行配置,但是无法通过169.254.169.254获取元数据.在配置了静态IP的Linu ...
- 服务器上怎么做网页啊,云服务器上怎么做网页
云服务器上怎么做网页 内容精选 换一换 企业主机安全(Host Security Service,HSS)是提升服务器整体安全性的服务,通过主机管理.风险防御.入侵检测.安全运营.网页防篡改功能,可全 ...
- 如何在把网页放到服务器上,怎么把网页放到云服务器上
怎么把网页放到云服务器上 内容精选 换一换 安全组类似防火墙功能,是一个逻辑上的分组,用于设置网络访问控制.用户可以在安全组中定义各种访问规则,当云耀云服务器加入该安全组后,即受到这些访问规则的保护. ...
- 如何将写好的网页放在服务器上,怎么把网页放在云服务器上
怎么把网页放在云服务器上 内容精选 换一换 用户的弹性云服务器已绑定EIP,但是无法连接到Internet.弹性云服务器通过EIP访问Internet的流程如图1所示:本问题请按照以下思路进行排查处理 ...
- 小程序一次性上传多个本地图片,上拉加载照片以及图片加载延迟解决之道
一:小程序之一次性上传多个本地相片 最近由于项目需要所以学了下小程序,也做了一些东西,随后便有了以下的一些总结了,现在说说如何使用小程序一次性上传多个本地相片. 问题描述 最近做项目的时候要实现一个上 ...
最新文章
- java camel dsl,Apache Camel与Spring DSL
- 6kyu Steps in k-prime
- 更改eclipse tomcat jvm heap
- 创建容器时[Warning] IPv4 forwarding is disabled. Networking will not work.
- zabbix的安装配置
- 转jpg java源程序_将pdf文件转成图片并删除java源代码
- Javascript---Immediately-Invoked Function Expression (IIFE)立即执行的函数表达式
- OpenCV——高效遍历图像(C++版本)
- Git ssh_key生成方法
- JDK 和 JRE 有什么区别
- matlab2010a中文,MATLAB 2010a解决中文字体乱码的方法
- eXosip订阅问题分析
- 移动硬盘提示RAW的资料找到办法
- 运行edX Devstack
- 地图学的基础知识_天文坐标系_大地坐标系_地心坐标系及其相关概念
- 安装Visio失败提示安装即点即用版本 利用office部署工具安装visio2016
- EasyExcel 读取excel表 解决Empty row EasyExcel末尾出现非常多空白行跳过 EasyExcel跳过末尾空白行
- 数据库 Table is marked as crashed and should be repaired 解决办法
- insmod modprobe
- 为什么现在算法工程师薪酬这么高?