Android Studio: Создаем WebActivity для браузера

Создание WebActivity

Для добавления веб-браузера на третью страницу (страницу «Блог»), создадим новую Activity. Нажимаем правой кнопкой мыши, выбираем «New» -> «Activity» -> «Empty Activity». Назовем её «WebActivity». Создадим Activity и обработчик события для перехода на эту страницу. В MainActivity скопируем и переименуем метод goContacts, например, в goToWeb. В нём будем открывать WebActivity.

// Пример кода метода goToWeb
goToWeb();

Добавление WebView и дизайна

Добавим WebView и скопируем нижнее меню из activity_main.xml в activity_web.xml. Простое добавление WebView не гарантирует его растягивание на всю ширину экрана, поэтому добавим LinearLayout как родительский элемент для WebView. Удалим обработчики кликов из activity_web.xml, так как в WebActivity соответствующих методов нет. Укажем параметры layout_width и layout_height как match_parent для LinearLayout и расположим его над нижним меню.

<LinearLayout
    android_layout_width="match_parent"
    android_layout_height="match_parent"
    android_layout_above="@+id/bottom_menu"
    >

    <WebView
        android_id="@+id/webView"
        android_layout_width="match_parent"
        android_layout_height="match_parent" />

</LinearLayout>

Настройка WebView и разрешения

Создадим объект WebView и получим его из дизайна используя findViewById. Создадим объект WebSettings для настройки WebView. Включим JavaScript. Укажем URL-адрес сайта, который хотим отобразить. В AndroidManifest.xml добавим разрешение на доступ к интернету:

WebView webView = findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl("https://it-prager.com");
<uses-permission android_name="android.permission.INTERNET" />

Исправление работы ссылок и кнопки «Назад»

Ссылки открываются в системном браузере, кнопка «Назад» работает некорректно. Чтобы ссылки открывались внутри WebView, добавим:

webView.setWebViewClient(new WebViewClient());

Для корректной работы кнопки «Назад», переопределим метод onBackPressed():

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

Создадим объект webView в классе WebActivity вне метода onCreate.

Теперь у нас есть функциональный веб-браузер, который можно интегрировать в любые Android-приложения.

Что будем искать? Например,программа