I need to write an Android application which is capable of loading a Website via a WebView. The Website contains an Input (Type=FILE)
<form action="..."> <input type="file" name="myFile" value="" id="...">< <input type="submit" value="submit">< </form>
When loading is done, the application should use a specific Image and upload it via a storage path:
String Path = "/storage/emulated/0/myimage.jpg"
I already tried to open a FileChooser-Dialog and that works, but I need a solution without the filechooser. The path of the “Path”-Variable should be used. I know that this would be a huge security leak, but is there maybe a solution for this? Maybe change die input-value via JavaScript? Maybe with a Library?
PS: Not meant to do anything illegal – the company app is generating profile images and they need to be uploaded via an existing unchangeable Input of type File.
Thanks in advance.
Advertisement
Answer
You can try this:
1) Get the URI of your file.
2) Trigger file chooser
3) Override onShowFileChooser
inside WebChromeClient
like this:
ValueCallback<Uri[]> mFilePathCallback; @Override public boolean onShowFileChooser(WebView mWebView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) { if (mFilePathCallback != null) { mFilePathCallback.onReceiveValue(null); } mFilePathCallback = filePathCallback; mFilePathCallback.onReceiveValue(myURI); mFilePathCallback = null; return true; }
Here myURI
is the URI
of your file.