webview图片上传以及中文路径解决

最近在一个项目中使用到了webview的图片上传功能、我天真的以为只要服务端给一个图片上传接口、我们将图片的数据进行上传就行了,结果需求并不是这样、而是直接让我们进行图片的上传。这里就需要对webview的功能进行深层次的了解了。

这三个方法主要是在webview中针对h5里面的input file标签做的处理。按照需求、点击上传图片按钮将弹出对话框

对、就是这幅鸟模样,o(︶︿︶)o 唉。之前使用的intent直接打开对话框,但产品说、我们需要有两个选择、一个是拍照、一个是从相册获取、如上图。但是、我说了、每个手机里面从相册选择图片的时候都会有一个打开相机的按钮。没办法,产品就是老大、不想跟这样的人说太多。好了、、闲话了那么多。回归正题。
1。这里我就自定义了一个对话框。
在对话框初始化中进行设置相对应的路径和按钮的事件监听

2。最后得到了对应的图片并返回给Activity进行显示

这里看起来是不是很多、别急、我们慢慢来、一步一步看。。
首先、这里我们在webview中的openFileChooser中可以得到一个回调监听ValueCallBack,这个监听可以让我们在acitivty的回调中进行判断。

第一个是拍照返回的图片路径,得到图片后、在之前我们早已设定的图片路径中保存图片,最后取的路径并设置给mIploadMesaage。
第二个就是我们需要从相册中或者文件选择的方式进行选择图片,

这里会返回一个选择后的图片路径类似于file://stroing/emlute/0/xxx/xxx.jpg或者是content://xxx/xxx/xxx.jpg
因为这里也需要包含文件选择以及图库中照片。
然后最后的一个坑来了,webview上传图片时、文件路径不能包含中文字符或者中文转码字符。比如:file://xxx/xxx/文件/a.jpg or URLencode后的字符。这就郁闷了。
我也在网上找了很久、有的人说使用iso-8859-1进行编码,也试过、没任何效果。最后问了一个Andorid开发群:257157414中的一个人才得知、只能使用临时文件的方式将路径进行偷梁换柱。

我的意思就是将带有中文的路径进行转换成英文路径,这个时候webview才会识别上传图片的路径。我的具体做法截图中已有。请详看、如有问题、2273681354本人QQ

这是我个人所遇到坑,还望大神们赐教。如有问题,还请见谅。小白程序员————



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值