Skip to content

Commit c2d3baf

Browse files
committed
fix recieving multi files
1 parent 19f891a commit c2d3baf

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

android/src/main/java/com/flutter_webview_plugin/WebviewManager.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ public boolean handleResult(int requestCode, int resultCode, Intent intent){
6767
} else if (videoUri != null && getFileSize(videoUri) > 0) {
6868
results = new Uri[] { videoUri };
6969
} else if (intent != null) {
70-
String dataString = intent.getDataString();
71-
if(dataString != null){
72-
results = new Uri[]{ Uri.parse(dataString) };
73-
}
70+
results = getSelectedFiles(intent);
7471
}
7572
}
7673
if(mUploadMessageArray != null){
@@ -96,6 +93,26 @@ public boolean handleResult(int requestCode, int resultCode, Intent intent){
9693
}
9794
}
9895

96+
private Uri[] getSelectedFiles(Intent data) {
97+
// we have one files selected
98+
if (data.getData() != null) {
99+
String dataString = data.getDataString();
100+
if(dataString != null){
101+
return new Uri[]{ Uri.parse(dataString) };
102+
}
103+
}
104+
// we have multiple files selected
105+
if (data.getClipData() != null) {
106+
final int numSelectedFiles = data.getClipData().getItemCount();
107+
Uri[] result = new Uri[numSelectedFiles];
108+
for (int i = 0; i < numSelectedFiles; i++) {
109+
result[i] = data.getClipData().getItemAt(i).getUri();
110+
}
111+
return result;
112+
}
113+
return null;
114+
}
115+
99116
boolean closed = false;
100117
WebView webView;
101118
Activity activity;

0 commit comments

Comments
 (0)