Для работы контейнера
file в WebView нам нужно переопределить метод WebChromeClient.openFileChooser(). В этом методе есть некий callback, в который нужно передать файл, выбранный пользователем. Никакого дополнительного функционала сам по себе /> не имеет. Диалог выбора файла нам нужно обеспечить. То есть мы можем открыть любой стандартный Android picker, в котором пользователь выберет нужный файл, получить его, например, через onActivityResult(), и передать в callback метода openFileChooser().
Пример кода JavaScript:
Код:
<input type="file" onchange="onFaileSelected(event)"/>
Пример кода Java:
Код:
WebChromeClient myClient = new WebChromeClient() {
@SuppressWarnings("unused")
public void openFileChooser(ValueCallback<Uri> callback, String accept, String capture) {
callback.onReceiveValue(Uri.parse("file://" + getFileFromSomeProvider()));
}
};
WebView webView = (WebView) findViewById(R.id.web_view);
webView.setWebChromeClient(myClient);
Также в манифесте прописать
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
для разрешения доступа приложения к файлам на внешней SD
как то так.