-
Notifications
You must be signed in to change notification settings - Fork 28
处理文件或图片选择
zhaohengyu edited this page Jul 16, 2018
·
2 revisions
在客服聊天页、或者商品评价页,有时需要传输图片。
在WebView中处理文件选择,需要遵守一定的操作步骤,(WebView File Chooser)
在有赞AppSDK的视图中(YouzanBrowser)对文件选择做了一定的封装,需按以下步骤实施:
mView.subscribe(new AbsChooserEvent() {
@Override
public void call(View view, Intent intent, int requestCode) throws ActivityNotFoundException {
startActivityForResult(intent, requestCode); // 发起文件选择intent, 注:此处requestCode需要在下述第3步时一起回传
}
});
这里可以默认用系统的文件选择器,也可以自己实现
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
// 回传数据, requestCode上步骤1中的, data intent中包含选择文件的uri
mView.receiveFile(requestCode, data);
}
}
- 上述步骤缺一不可;
- 每次选择文件,回传数据的mView.receiveFile一定要调用,不能因为用户没选任何文件就不调,否则h5页面中的文件选择Button点击无响应(因为此时WebView不能正确处理状态);
- AppSDK 5.2.0版本以前处理文件选择有bug,h5页面中文件选择Button点击无响应。5.2.0及以后版本已修复此问题。