Как в android studio загрузить файл изображения с компьютера в webView?
У меня есть webView в приложении, которая показывает сайт. На этом сайте есть кнопка загрузить изображение, которая должна открыть окно для выбора изображения из устройства. Но у меня при нажатии на эту кнопку ничего не происходит, хотя все остальные кнопки на сайте работают. Это проблема эмулятора или нужно что-то прописать чтобы приложение разрешило доступ к файлам на устройстве?
Ответы (1 шт):
WebView не имеет доступа к системе, все общение нужно организовывать самому, выбор файла, загрузку файлов, обработку вывода в консоль (если например хотите увидеть console.log из скриптов), и т.д. Делается это через WebChromeClient
В частности для выбора файла вам нужно самостоятельно реализовать открытие пикера файлов и открывать его при нажатии в WebView примерно так:
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onShowFileChooser(WebView webView,
ValueCallback<Uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
chooseFiles(filePathCallback, fileChooserParams);
}
});
private void chooseFiles(ValueCallback<Uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
// вызываете пикер по результатам выбора отдаете полученные uri
// в filePathCallback.onReceiveValue(uris)
}