android webview在默认的情况下是不支持网页中的文件上传的:
如果在网页中有<input type="file"/>,在android webview中的访问时也会出现游览文件的按钮,但是点击按钮之后没有反应、、、那么如何能够让android的viewview能够响应,这个游览按钮呢?
我的方案就是为webview设置webChromeClient,在webChromeClient的实现类中添加文件选择的方法:
//js上传文件的<input type="file" name="fileField" id="fileField"/>事件捕获
//Android >4.1.1调用这个方法
public void openFileChooser(ValueCallback<Uri>uploadMsg,String acceptType,String capture){
mUploadmessageuploadmsg;
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
context.startActivityForResult(Intent.createChooser(intent,"完成操作需要使用"), WebMainAcivity.FILECHOOSER_RESULTCODE);
}
在设置WebChromeClient时,要传入一个ValueCallback<Uri> mUploadMessage,同时传入webview所在的activity的对象;在WebChromeClient的实现类中对应的文件选择事件响应的方法里,使用webview所在的activity对象开启一个Android文件选择器,使用startActivityForResult方法,在开启的文件选择activity结束后需要返回一个值:在webview所在的activity中通过覆盖Activity的onActivityResult方法,得到所需的结果,即选择文件的url