Android WebView文件上传及自定义文件选择器

Android WebView文件上传

本工程为大家演示在H5中如何上传文件,同时也提供了服务端代码,有兴趣的读者可以部署起来,测试文件上传功能。

如果只对客户端部分感兴趣,只需要关注WebView文件选择部分即可

服务端代码下载地址, 客户端可以用如下url来上传文件
http://ip:port/AndroidMvvmServer/upload,如 http://192.168.1.200:8080/AndroidMvvmServer/upload

本文源代码地址:github地址

经过测试的机型

厂商机型系统版本
三星GalaxyS4Android5.0.1
小米红米4Android6.0.1
华为荣耀7IAndroid6.0.1
华为荣耀V8Android8.0
华为Mate20Android9.0

在华为荣耀某台机器上(Android5.0)上,文件选择效果如下所示:

在这里插入图片描述

Android4.4版本中, 如果使用系统默认的文件选择器,使用相册来选择文件而不是文件选项来选择文件 可能会遇到不能正确获取到选择的文件名. 如下图所示:

Android4.4

不同手机厂商手机默认的文件选择器

在红米手机上Android6.0(左) 和 华为荣耀7I Android6.0(右),WebView文件选择效果如下所示:

在这里插入图片描述

自定义WebView文件选择器

不同的手机定制厂商对WebView文件选择器不管是在样式上还是按钮个数上都不尽相同。

如果需要统一WebView文件选择样式,需要自定义WebView文件选择器,如下图所示:

在这里插入图片描述

需要注意的问题

1,如果在使用的过程中,或者在此基础上进行修改的过程中 ,出现H5的中的选择文件按钮点击没有反应,可能是ValueCallback没有重置导致的。

2,本项目主要处理H5文件选择的问题,关于权限、文件存储的目录可以自行根据实际情况修改

APK Demo下载地址


如果你觉得本文帮助到你,给我个关注和赞呗!

另外,我为 Android 程序员编写了一份:超详细的 Android 程序员所需要的技术栈思维导图

如果有需要可以移步我的 GitHub -> AndroidAll,里面包含了最全的目录和对应知识点链接,帮你扫除 Android 知识点盲区。 由于篇幅原因只展示了 Android 思维导图:
超详细的Android技术栈

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiclaim

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值