加粗文字一定要看,才能明白原理,要不然会糊里糊涂,即便是实现功能,也不知原理,以后修改也麻烦。
Android的WebView内部屏蔽type=“file”,网页想在WebView内调用相机需要在setWebChromeClient重写onShowFileChooser方法。
在这个方法中发起Intent来打开支持提供文件的第三方应用,最后onActivityResult回调中将第三方应用提供的内容通过一个叫做 ValueCallback 的参数返回给Webview。
避免长篇幅,简单说了下原理。
现在都是大部分手机android都在5.0以上,可以直接使用onShowFileChooser方法,openFileChooser是之前android版本使用方法。
整理最简单的实现方法,代码简介,看起来不头疼。附上源码仅供学习参考
DEMO
https://download.csdn.net/download/qqsunman2/12042882
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public boolean onShowFileChooser(WebView mWebView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams)
{
if (uploadMessage != null)