手机端 App 内嵌网页(WebView)无法正常处理 input type=file 的相机拍照回传与属性拦截
系统版本:X86,
设备环境:物理机,
系统版本号:1.1.3107,
APP版本号:1.30.1,
出现频率 :必现
在飞牛 OS 手机客户端中打开自制的FPK文件,网页中存在标准的 标签用于上传图片。在使用过程中发现 App 底层的 WebView 存在以下两个严重的兼容性 Bug:
1,拍照后文件丢失(不触发 change 事件): 点击 input 标签后,底部弹出“相机 / 文件”的选择菜单。如果选择“相机”进行现场拍照,拍完点击确认返回网页后,网页中的 input 标签无法获取到任何文件( files 列表为空),且不触发任何 change 事件。就像被 App 底层吞掉了一样。 (注:如果选择“文件”并从相册选择已有的老照片,则可以正常触发 change 并获取到文件)
2,强制接管菜单,无视 accept 属性引导: 无论前端网页如何设置 accept="image/*" 或者加上 capture="environment" 等标准属性,飞牛 App 始终强制弹出自定义的“相机 / 文件”两个图标的底部弹窗,无法像标准浏览器那样直接唤起系统相册(图库),导致用户必须繁琐地从文件管理器中去寻找图片。
该问题导致所有需要在飞牛 App 内进行“现场拍照上传”的 Web 应用,只能让用户切出 App 拍完再切回来选文件,严重影响使用体验。