Создание 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-приложения.