I have been struggling to upload files from WebView since last few days and there is no progress. I googled and implemented all suggested solutions but none works, like: solutions suggested here, and so on.
formWebView.setWebChromeClient(new WebChromeClient() {
                // openFileChooser for Android 3.0+
                public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType){
                    // Update message
                    mUploadMessage = uploadMsg;
                }
    
                // openFileChooser for Android < 3.0
                public void openFileChooser(ValueCallback<Uri> uploadMsg){
                    openFileChooser(uploadMsg, "");
                }
    
                //openFileChooser for other Android versions
                public void openFileChooser(ValueCallback<Uri> uploadMsg,
                                            String acceptType,
                                            String capture) {
    
                    openFileChooser(uploadMsg, acceptType);
                }
    
                @Override
                public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
                    if (uploadMessage != null) {
                        uploadMessage.onReceiveValue(null);
                        uploadMessage = null;
                    }
                    uploadMessage = filePathCallback;
                    try {
                        Intent intent;
                        intent = fileChooserParams.createIntent();
                        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                        intent.setType("*/*");
                        startActivityForResult.launch(intent);
                    } catch (ActivityNotFoundException e) {
                        uploadMessage = null;
                        toast("Cannot Open File Chooser");
                        return false;
                    }
                    return true;
                }
    
                // The webPage has 2 filechoosers and will send a
                // console message informing what action to perform,
                // taking a photo or updating the file
    
                public boolean onConsoleMessage(ConsoleMessage cm) {
                    onConsoleMessage(cm.message(), cm.lineNumber(), cm.sourceId());
                    return true;
                }
    
                public void onConsoleMessage(String message, int lineNumber, String sourceID) {
                    Log.d("androidruntime", "Show console messages, Used for debugging: " + message);
    
                }
            });   // End setWebChromeClient
 ActivityResultLauncher<Intent> startActivityForResult = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
        if (result.getResultCode() == BaseActivity.RESULT_OK) {
            Intent data = result.getData();
            if (data != null) {
                if (uploadMessage == null)
                    return;
                uploadMessage.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(result.getResultCode(), data));
                uploadMessage = null;
            }
        }
    });
D/androidruntime: Show console messages, Used for debugging: TypeError: Cannot read properties of null (reading '1')
D/androidruntime: Show console messages, Used for debugging: Uncaught TypeError: Cannot read properties of null (reading '1')
D/androidruntime: Show console messages, Used for debugging: [object Object]
I tried this, for some devices file path of .zip, like this - content://media/external/file/353616, the WebView not accept this kind of path. any solution for this?
Thanks in advance.
