前端常见兼容问题系列6: 一些安卓APP的WebView中<input type="file">不工作

有一次想做一个HTML5的图片上传功能,主要是依赖<input type="file"> 来选择本地的图片。开始一切都很顺利,在浏览器中,在淘宝等容器中,都能如预期进行文件选择和上传。在iOS系统下的APP中也都工作正常,但是在一个安卓APP中,无论怎么尝试选择文件,都始终出不来。

我给input的onchange事件打了个alert(),点击时也没有任何反应。看来是<input type="file"> 在这个容器中根本就不工作。

经过一番检索,发现这其实是个非常老的问题了(惭愧)。是安卓APP的WebView默认屏蔽了该控件的使用,有些安卓APP之所以能支持文件选择和上传,主要可能是有可能采取了如下措施之一:

(1)可能在该APP中重写了相关方法(http://stackoverflow.com/questions/5907369/file-upload-in-webview

(2)提供了JS Bridge来供web页面调用

所以,单从前端技术上是解决不了这个问题的。

这个问题之所以不太好排查,一方面跟手机端的图片上传功能我不太常用到有很大关系,另一方面也因为见到一些其它的APP容器能支持该功能,所以思维在习惯上已经形成定势,误以为这是WebView默认就支持的。

末了,顺便提醒一句,下次进行类似功能的需求评审,别忘了先了解下相应的APP容器是否支持该功能,如果没有,则需要找到相应的客户端开发同学评估一下工时,以免造成影响项目进度的风险哟!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值