由于Android Kitkat版本(最常见的是4.4.2)中存在一个已知的错误,即在使用WebView中的任何HTML文件元素后不允许用户打开文件上载对话框,Android本身是否可以确定当前设备是否有此错误?< / p>
仅通过Android版本确定不是一个好的解决方案,因为并非所有运行4.4.2的设备都会遇到此错误。
答案 0 :(得分:0)
我也必须处理这个问题。最终我认为它不值得,因为没有那么多设备修改了股票webkit,所以我单独根据版本号应用了变通方法(SDK_INT == 19)
但是,如果webkit确实是罪魁祸首(而不是其他系统类),您可能需要检测webkit版本:https://stackoverflow.com/a/29218966/828752
来自https://developer.chrome.com/multidevice/webview/overview#what_version_of_chrome_is_it_based_on_:
Android 4.4(KitKat)附带的WebView基于相同的 代码为Chrome for Android版本30.此WebView没有完整版 功能与Chrome for Android相同,并提供版本号 30.0.0.0。 Android 4.4.3附带的更新后的WebView版本号为33.0.0.0。
答案 1 :(得分:0)
这种检测方法不是很优雅,但由于没有精确的方法来检测设备上此错误的发生,最好的方法是通过javascript计算用户点击HTML FILE元素的次数。
如果点击计数器超过某个值(因为用户试图让它一遍又一遍地工作),你知道它不起作用。到目前为止,这个错误最常见的版本是4.4.2,因此只有在检测到此Android版本以获得额外的精度时,才能激活此计数器。
就像我说的那样,这种检测方法非常混乱,但是如果Android有一个错误,那么这个问题就好了。没有遇到此错误的用户不太可能多次点击HTML FILE元素。