无需单击并按住即可启动多个文件选择-Android Cordova

时间:2018-10-29 15:22:36

标签: java android cordova mobile mobile-application

我正在构建Cordova应用程序,并更新了SystemWebChromeClient.java中的onShowFileChooser方法以允许选择多个文件。问题是,要选择多个文件,您必须单击并按住第一个文件才能启动多重选择。我需要做的是允许选择多个文件,而无需单击并按住第一个文件。如果可能的话,我希望无需其他插件就可以做到这一点。

以下是用于选择多个文件的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。

谢谢!

0 个答案:

没有答案