最近了解了一下android的webview可以默认的调用系统的文件选择器。首先,网页的html写法要有<input type="file" ...>
,这个在ios上也是可以默认调用系统的文件选择器,只不过可以选择部分文件,毕竟ios对文件的选择做了限制;
今天主要来介绍一下,在android上要如何实现webview调用系统文件选择器,在网上一搜,是可以搜到许多,基本全都是要实现WebChromeClient的openFileChooser(…),我就按网上的教程试了下,突然发现在有些手机上可行,有的则不可行,这就很奇怪了,为什么有的手机不行呢?让我百思不得其解,去网上搜索了好多资料也没有解决,后来翻看了一下源码后恍然大悟,原来5.0的WebChromeClient不是用的openFileChooser(…),而是用的onShowFileChooser(…),所以以后要特别注意下Google是否对Android的源码有改动。
接下来就是如何实现的代码了:
public class BaseWebChromeClient extends WebChromeClient {
public static final int FILECHOOSER_RESULTCODE = 10000;
// For Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
}
// For Android 3.0+
public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
}
//For Android 4.1