Создание Веб-обозревателя (браузера)
Главная » Создание Веб-обозревателя (браузера)

Мы уже начали полноценно обеспечивать себя личным софтом, вспомните наши чудесные калькулятор и конвертер. И в этом уроке мы научимся создавать простой браузер, с помощью которого будет бороздить просторы интернета. Согласитесь, серфить сеть на своем собственном браузере - это в разы приятнее чем делать это на Opera или Chrome (вряд ли удобнее, но приятнее :)). Создаем новый проект, названия традиционно выбирайте сами. Лично я вообще не создаю каждый раз все с нуля, а просто открываю, что есть, и зачищаю весь код до исходного состояния Blank Activity. Делайте, как вам удобней.

Итак, кратко очертим объем и специфику последующей работы. Нам нужно создать элемент <WebView>, в котором будет все происходить, написать код, создающий наш личный Веб-обозреватель, обустроить его базовыми функциями, прописать разрешение на использование Internet нашим приложением в файле манифеста, и написать обработчик нажатия аппаратной кнопки "Назад" на устройстве (то есть, что будет происходить в нашем браузере при нажатии на эту кнопку).

Начнем. Открываем файл activity_main.xml. Создаем там один единственный элемент <WebView>, которого нам вполне достаточно для реализации веб-обозревателя:

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_height="match_parent"
 android:layout_width="match_parent"
 android:id="@+id/web"/>

Окно разметки будет выглядеть так:

Браузер

После этого давайте сразу разберемся с файлом AndroidManifest.xml. Открываем его и добавляем туда две строчки, одна - это разрешение для приложения использовать Интернет, другая - изменение стиля приложения, а точнее сокрытие панели "Title" приложения (панели с заголовком приложения) с той целью, чтобы предоставить окну браузера больше пространства для отображения страниц.

Пишем строку разрешения использовать интернет до открытия тега <application>...</application>:

<uses-permission android:name="android.permission.INTERNET"/>

Теперь добавим к строке настройки нашего Activity команду для скрытия заголовка (нижняя строка, выделенная жирным, это также находиться в  AndroidManifest.xml):

 <activity
 android:name=".MainActivity"
 android:label="Браузер"
 android:theme="@android:style/Theme.NoTitleBar">

Теперь переходим к самой важной и ответственной части работы - написанию java кода. Открываем файл MainActivity.java и пишем так следующее (объяснения даны в коде после знаков //, кто не заметил):

package home.myapplication;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends Activity {
 // Объявляем переменную типа WebView
 private WebView mWeb;
 // Создаем класс типа Веб-обозреватель (WebViewClient), которому настраиваем
 // по умолчанию разрешение обрабатывать все ссылки внутри этого класса,
 // не обращаясь к сторонним программам:
 private class WebViewer extends WebViewClient {
 @Override
 public boolean shouldOverrideUrlLoading (WebView view, String url)
 {
 view.loadUrl(url);
 return true;
 }
}

 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 // Привязываем объявленную переменную типа WebView к созданному нами
 // элементу WebView в файле activity_main.xml:
 mWeb=(WebView)findViewById(R.id.web);

 // Подключаем для этого элемента поддержку Java скриптов:
 mWeb.getSettings().setJavaScriptEnabled(true);

 // Настраиваем страницу, которая будет загружать при запуске, можете ввести любую:
 mWeb.loadUrl("http://developeroleg.ucoz.ru/");

 // Настраиваем обозреватель для нашего элемента WebView, подключаем созданный нами выше
 // Веб-клиент, с помощью которого будет проходить просмотр страниц:
 mWeb.setWebViewClient(new WebViewer());
}
 // Пишем код обработки нажатия кнопки назад на устройстве, что позволит нам при нажатии
 // на кнопку "Назад" перейти к предыдущей странице, а не просто закрывать приложения.
 // Оно будет закрываться кнопкой "Назад" лишь в том случае, если мы находимся на стартовой
 // странице, которую указали выше:
 @Override
 public void onBackPressed() {
 if (mWeb.canGoBack()) {
 mWeb.goBack();}
 else {
 super.onBackPressed();
 }
}
}

Вот и все! На самом деле все довольно просто и после недолгих трудов у нас есть собственный браузер, конечно он довольно прост и не имеет никаких опций, но для понимания сути создания подобных приложений этого вполне достаточно.

Оригинальная статья вот тут. Мне показалось нужным слепить растерянные по всей странице обрывки кода в плотненькую программку:).

Категория: Уроки программирования | Просмотров: 1546 | Добавил: Oleg | Рейтинг: 4.3/6
Всего комментариев: 0
avatar