Я создаю приложение Cordova и обновил метод onShowFileChooser в SystemWebChromeClient.java, чтобы позволить выбирать несколько файлов. Проблема в том, что для выбора нескольких файлов вы должны нажать и удерживать первый файл, чтобы начать множественный выбор. Что мне нужно сделать, это разрешить выбор нескольких файлов без необходимости щелкать и удерживать первый файл. Я хотел бы иметь возможность сделать это без дополнительного плагина, если это возможно.
Вот HTML для выбора нескольких файлов:
<input type="file" name="files[]" accept="image/*,video/*" multiple />
А вот код Java для выбора нескольких файлов:
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onShowFileChooser(WebView webView, final ValueCallback<Uri[]> filePathsCallback, final WebChromeClient.FileChooserParams fileChooserParams) {
Intent intent = fileChooserParams.createIntent();
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setType("*/*");
try {
parentEngine.cordova.startActivityForResult(new CordovaPlugin() {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
Uri[] result = WebChromeClient.FileChooserParams.parseResult(resultCode, intent);
if (result == null) {
ClipData clipData = intent.getClipData();
result = new Uri[clipData.getItemCount()];
for (int i = 0; i < clipData.getItemCount(); i++) {
result[i] = clipData.getItemAt(i).getUri();
}
}
filePathsCallback.onReceiveValue(result);
}
}, intent, FILECHOOSER_RESULTCODE);
} catch (ActivityNotFoundException e) {
LOG.w("No activity found to handle file chooser intent.", e);
filePathsCallback.onReceiveValue(null);
}
return true;
}
Эта проблема возникает только в Android, а не в iOS.
Использование Cordova версии 8.1.2 и платформы Android 7.1.1.
Заранее спасибо!