Android webview 上传文件不调用openFileChooser解决办法

时间:2021-05-09 20:00:12

html页面带有图片上传功能,关于使用openFileChooser方法去选择图片,并且在onActivityResult方法里面设置返回的图片url文件路径,网上有很多,再次不再赘述。

实践中发现,在部分机型中openFileChooser并不发起调用,所以,此方法并不可行。此时,才有webview调用js交互去实现网络图片上传。

思路:

1.网页版调用webview 本地js方法,发起文件选择请求;

2.App本地进行文件选择,并在onActivityResult中返回文件路径

Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
MainActivity.this.startActivityForResult(
Intent.createChooser(i, "File Browser"),
FILECHOOSER_RESULTCODE);

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if (requestCode == FILECHOOSER_RESULTCODE) {
// if (null == mUploadMessage)
// return;
Uri result = intent == null || resultCode != RESULT_OK ? null
: intent.getData();
Log.d("本地地址", result.toString());
//调用js
// mUploadMessage.onReceiveValue(result);
// mUploadMessage = null;
}
}

3. webview 调用js方法,告诉网页本地返回路径

参考文档:

http://www.bkjia.com/Androidjc/976345.html webview js 交互方法