вторник, 12 июня 2012 г.

Drowser - как написать простейший браузер для Android

В этой статье я расскажу, как написать простейший браузер для Android.
Тестировал на эмуляторе Android 2.2 и HTC Wildfire.
Надеюсь, что Eclipse к разработке под андроид вы уже настроили. Так что приступим.

Первым делом, надо попросить у устройства разрешение на доступ к интернету для вашего приложения. Это делается в файле AndroidManifest.xml . Нужно просто добавить слудующую строчку:
<uses-permission android:name="android.permission.INTERNET" />

Как дочерний элемент корня (тэг <manifest>) . Я добавил после строки про uses-sdk.
Далее идём в /res/layout/main.xml и заменяем имеющийся там код на следующий:
<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>
fill_parent - это что бы браузер был на весь экран. Иное просто не имеет смысла. Теперь идём в /src/имя.вашего.пакета/ИмяАктивити.java У меня это /src/ru.tuluk.kosc.drowser . Добавляем во эту строчку:
import android.webkit.WebView;
В верхней части, рядом с аналогичными строками импорта. Эта строка нужна для импорта класса WebView, который как раз и представляет собой стандартный браузер Android. Теперь нам нужно создать экземпляр этого класса. Под строкой, начинающейся с public class, напишите: WebView mWebView; Теперь осталось направить пользователя на стартовую страницу. после строки setContentView(R.layout.main); напишите:
mWebView = (WebView) findViewById(R.id.webview); // связываем наш экземпляр класса с WebView на форме
mWebView.getSettings().setJavaScriptEnabled(true); // включаем JavaScript (можно этого и не делать, но тогда возможности будут не полными)
mWebView.loadUrl("http://polukoder.blogspot.com/"); // грузим стартовую страницу
Ну вот и всё, можно запускать. Честно говоря, для меня было большим сюрпризом, что WebView работает абсолютно так же, как и встроенный браузер - даже кнопка Menu вызывает такое же меню. В следующий раз надеюсь рассказать, как улучшить этот браузер, добавить своё меню и некоторые другие фишки.