Главная » Создание Веб-обозревателя (браузера) | |
Мы уже начали полноценно обеспечивать себя личным софтом, вспомните наши чудесные калькулятор и конвертер. И в этом уроке мы научимся создавать простой браузер, с помощью которого будет бороздить просторы интернета. Согласитесь, серфить сеть на своем собственном браузере - это в разы приятнее чем делать это на 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();
}
}
}
Вот и все! На самом деле все довольно просто и после недолгих трудов у нас есть собственный браузер, конечно он довольно прост и не имеет никаких опций, но для понимания сути создания подобных приложений этого вполне достаточно. Оригинальная статья вот тут. Мне показалось нужным слепить растерянные по всей странице обрывки кода в плотненькую программку:). | |
|
Всего комментариев: 0 | |