Android混合开发文件选择 采用js侧input插件的坑 0x00

介绍一下文件选择的实现思路:

通过 WebView.setWebChromeClient()调用Intent.createChooser()来进行文件选择。

覆写 onActivityResult()对文件路径进行处理得到包含文件名的路径。

android侧缓存文件系统的虚拟路径,通过ValueCallback.OnReceiveValue(new Uri[])传递,js侧通过jsbridge获取缓存的虚拟路径

来进行文件的对象的获取。

这样一套下来,可以成功实现oss上传的文件选择,但是有一天突然发现一个情况。当input进入文件选择页面之后,为空返回,input会无法再次唤起系统文件选择。

经过分析,发现如果未选择任何文件对象,ValueCallback.OnReceiveValue()也是必须要调用的,不然与js侧input的关联无法得到更新,变成假死状态,下一次点击也无法触发android侧。面对未选择任何文件对象的情况,需要把null作为参数传递给它。对,这个函数接受null而且不会发生异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值