Как научить WebView открывать Input File — Менеджер файлов (выбор фото) для загрузки на сайт?

Раздаю разрешения приложению в манифесте на (Интернет/Камеру и Хранилище):

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Размечаю все приложение в WebView в Activity Main

  <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

И сам Java КОД:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.loadUrl("https://dodating.ru");

    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    myWebView.setWebViewClient(new WebViewClient());

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    myWebView.setBackgroundColor(Color.parseColor("#7d41f9"));

    myWebView.setPadding(0, 0, 0, 0);

}

}

Все работает отлично, за исключением выбора файла, он просто не вызывает меню выбора файла..

image

Как научить его обрабатывать кнопку вызова файла, как на рисунке ниже ?

image

Спасибо за внимание.


Ответы (1 шт):

Автор решения: Barmaley Red Star

Задача состоит из 2-х частей:

  1. Перехватить клик на кнопку в WebView - пример смотрим здесь
  2. В перехвате инициировать просмотр/выбор из файловой системы. Здесь все еще проще. Если версия Android >=6.0 то тупо вызываем Intent.ACTION_OPEN_DOCUMENT, указывая нужный mimetype, если версия Android KitKat и ниже - то будет чуток сложнее. Например смотрим сюда
→ Ссылка