Урок 32. Создаем простое приложение – интернет браузер для андроид | Уроки Android Studio

В этом уроке вы увидите, как сделать простейший браузер, который отобразит страницу в интернете по http-адресу. Для этого надо создать Intent, настроить Intent Filter и использовать WebView.

Исходный код классов – под видео:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <Button
        android:id="@+id/btnWeb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="web">
    </Button>
</LinearLayout>
package info.fandroid.simplebrowser;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        (findViewById(R.id.btnWeb)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://fandroid.info")));
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="info.fandroid.simplebrowser.BrowserActivity">

    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView">

    </WebView>

</LinearLayout>
package info.fandroid.simplebrowser;

import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebView;

public class BrowserActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_browser);

        WebView webView = (WebView)findViewById(R.id.webView);
        Uri data = getIntent().getData();
        webView.loadUrl(data.toString());
    }
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="info.fandroid.simplebrowser">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".BrowserActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"></action>
                <data android:scheme="http"></data>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>
    </application>

</manifest>

Больше уроков:

Уроки Android Studio: тут
Инструменты android разработчика: тут
Дизайн android приложений: тут
Уроки создания игр для android: тут
Основы программирования на JAVA: тут

<<Урок 31. Вызываем браузер, звонилку, карты с помощью intent с атрибутом data – Uri

Урок 33. SharedPreferences – сохранение данных в приложениях | Уроки Android Studio>>

Коментарі: 6
  1. Сулаймонхон Султонов
    skifsulton

    Привет. Спасибо за урок. У мне вопрос. Я разработал приложение оно работает хорошо. В моем сайте есть форма где пользователь заполняет. То есть загружает фото. В приложение не получается.
    Я попробовал в системном приложение браузере работает. Вопрос как надо делать что бы в нашем приложение пользователь смог загрузить и скачать, как других браузерах.

  2. Борис

    Здравствуйте!
    Подскажите, пожалуйста, есть ли решение, благодаря которому, при невозможности загрузки страницы (например, если сервер не отвечает, или отсутствует подключение) срабатывал определенный код, например, открывающий новое активити или выводящий сообщение?
    В приложении на базе webview очень “не комильфо” получается, когда вылазит стандартная страница Хрома об ошибке.
    Большое спасибо заранее!

  3. Виталий спс за уроки, нравится по ним заниматься, пугает что будет когда они закончатся))) Мой вопрос вот в чем, хочу узнать String action других приложений,которые у меня на планшете(samsung galaxy tab 4.4.2 на котором я и веду отладку) – пытаюсь через pc залезть в планшет и найти хоть какое-нибудь приложение,расковырять от туда манифест но не могу найти загруж приложения, даже папку system искал поисковиком – винда пишет объекты не найдены в Tablet, в папке data(Tabletdatadatacom.sec.android.app.FileShareServerfiles) только два xml файла – описание устройства и файлтранспорт) – а должно быть кроме установленных ещё около 30 прилжений(после отладки по вашим урокам в ютубе остаются на планшете) Где они?) может без рут прав мне просто не показывают все дерево папок…

  4. Александр

    При переходе на активность браузера выбираю свою activity_web, после перехода предлагает снова выбрать приложение для открытия (хром, родной браузер). не получилось чего-то, объясните чайнику

Додати коментар