android4.4.2在webview里上传不了图片,用js处理,有个ValueCallback参数不知是什么?

haohaohao_ 2017-06-28 05:39:25
因为4.4.2调用不了openFileChooser,我想通过js来处理
在调用的js里模仿openFileChooser,可以打开相册,
但是openFileChooser有个参数ValueCallback<Uri>不知道是什么,
app的代码里怎么获取ValueCallback<Uri>?
这个参数在回调方法里要用到,如下面的mUploadMessage就是这个参数赋值的
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == FILECHOOSER_RESULTCODE) {
if (null == mUploadMessage && null == mUploadCallbackAboveL) return;
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
if (mUploadCallbackAboveL != null) {
onActivityResultAboveL(requestCode, resultCode, data);
} else if (mUploadMessage != null) {
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}
}

...全文
747 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haohaohao_ 2017-06-29
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
[quote=引用 2 楼 haohaohao_ 的回复:] 这个我知道,但4.4.2版本不会触发以上方法,我想用js来处理4.4.2不会触发的问题,ValueCallback<Uri> 好像是保存的是file标签的信息内容。 我想通过web的js调用app的java代码,如果我用js时,能够和openFileChooser方法那样获得ValueCallback<Uri> 这个参数信息,我觉得处理起来会变得简单。所以我想知道ValueCallback<Uri> 参数在js调用java代码时,哪里能够提供ValueCallback<Uri>
网页中的input选择文件的标签就会触发文件存在。[/quote] 不太明白你说的是什么。
jklwan 2017-06-29
  • 打赏
  • 举报
回复
引用 2 楼 haohaohao_ 的回复:
这个我知道,但4.4.2版本不会触发以上方法,我想用js来处理4.4.2不会触发的问题,ValueCallback<Uri> 好像是保存的是file标签的信息内容。 我想通过web的js调用app的java代码,如果我用js时,能够和openFileChooser方法那样获得ValueCallback<Uri> 这个参数信息,我觉得处理起来会变得简单。所以我想知道ValueCallback<Uri> 参数在js调用java代码时,哪里能够提供ValueCallback<Uri>
网页中的input选择文件的标签就会触发文件存在。
haohaohao_ 2017-06-29
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
5.0以上触发方法onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) 3.0到4.4触发openFileChooser(ValueCallback<Uri> uploadFile, String acceptType, String capture) 其实逻辑差不多,只是返回不同,当你选择完图片后,如果是5.0以上的用filePathCallback.onReceiveValue(results);results是Uri[]类型;如果是3.0到4.4用uploadFile.onReceiveValue(result);result是Uri格式;需要注意的是,如果你取消选择图片了也需要用onReceiveValue(null);返回数据,否则页面会不可用;
这个我知道,但4.4.2版本不会触发以上方法,我想用js来处理4.4.2不会触发的问题,ValueCallback<Uri> 好像是保存的是file标签的信息内容。 我想通过web的js调用app的java代码,如果我用js时,能够和openFileChooser方法那样获得ValueCallback<Uri> 这个参数信息,我觉得处理起来会变得简单。所以我想知道ValueCallback<Uri> 参数在js调用java代码时,哪里能够提供ValueCallback<Uri>
jklwan 2017-06-29
  • 打赏
  • 举报
回复
5.0以上触发方法onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) 3.0到4.4触发openFileChooser(ValueCallback<Uri> uploadFile, String acceptType, String capture) 其实逻辑差不多,只是返回不同,当你选择完图片后,如果是5.0以上的用filePathCallback.onReceiveValue(results);results是Uri[]类型;如果是3.0到4.4用uploadFile.onReceiveValue(result);result是Uri格式;需要注意的是,如果你取消选择图片了也需要用onReceiveValue(null);返回数据,否则页面会不可用;

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧