Урок 32. Пишем простой браузер

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 32. Пишем простой браузер

Сообщение damager82 » 10 ноя 2011, 03:00

В этом уроке:

- пишем простой браузер

Click here to read this article!
Последний раз редактировалось damager82 01 май 2017, 16:38, всего редактировалось 5 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

AiVeR
Сообщения: 10
Зарегистрирован: 08 янв 2012, 12:26

Re: Урок 32. Пишем простой браузер

Сообщение AiVeR » 16 янв 2012, 15:54

Если же в нашем браузере на сайте яндекса нажать на кнопку найти, то оно уже не спросит и запустит родной браузер. Выходит для этого действия другой action или data? Хотелось бы узнать какой. На оф сайте action'ов много, спутать довольно легко.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 32. Пишем простой браузер

Сообщение damager82 » 16 янв 2012, 16:33

Тут об этом можно почитать. http://developer.android.com/resources/ ... bview.html

Надо будет обработчик прописывать, который будет все ссылки в том же WebView открывать.
Там же написано, как реализовать кнопку Back в браузере.

В ближайшее время обновлю урок и добавлю это все.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

zavbak
Сообщения: 6
Зарегистрирован: 25 янв 2012, 02:25

Re: Урок 32. Пишем простой браузер

Сообщение zavbak » 28 янв 2012, 04:34

Добрый день!

WebVie Не хочет отображать страницу.
Пишит: Веб страница не доступна.
Если открываю штатный браузер все работает.
Не пойму в чем дело.

Манифес и все остальное копировал.

Добавлял:
webView.getSettings().setJavaScriptEnabled(true);


Пробовал на разных страницах.


Не работает.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 32. Пишем простой браузер

Сообщение damager82 » 28 янв 2012, 23:14

zavbak писал(а): WebView Не хочет отображать страницу.
Пишит: Веб страница не доступна.
Это точно есть в манифесте?

Код: Выделить всё

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Без этих прав у меня тоже пишет not available.

Попробуйте пересоздать с нуля приложение.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

zsergei2000
Сообщения: 1
Зарегистрирован: 16 фев 2012, 00:02

Re: Урок 32. Пишем простой браузер

Сообщение zsergei2000 » 16 фев 2012, 00:20

Бьюсь уже пару дней. Задачка - открыть НТМЛ файлик с СД карты. В нете нормального примера не нашел. Встретил только, что по соображения безопасности такое в андроиде прикрыли. Можете подсказать пример реализации. Просто пример - создать переменную, запихать в нее текст НТМЛ блока работает, даже нашел как кодировку задавать верную. Но мне нужно открывать НТМЛ в котором прописаны ссылки на файлы с скриптами, т.е. там цепочка файлов, завязанных друг на друга, и вкинуть все в один у меня не получается.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 32. Пишем простой браузер

Сообщение damager82 » 17 фев 2012, 13:09

zsergei2000 писал(а):Но мне нужно открывать НТМЛ в котором прописаны ссылки на файлы с скриптами, т.е. там цепочка файлов, завязанных друг на друга, и вкинуть все в один у меня не получается.
Насчет скриптов не очень понял. Но если надо открывать ссылки на файлы, то вы можете в WebView повесить обработчик нажатия на ссылку, получать имя файла, читать его содержимое на карте и выводить в WebView.

Про обработчик тут пример есть:
http://developer.android.com/resources/ ... bview.html (пункты 7,8)
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

vadlm
Сообщения: 3
Зарегистрирован: 10 мар 2012, 15:55

Re: Урок 32. Пишем простой браузер

Сообщение vadlm » 10 мар 2012, 16:00

В тексте это случаем не ошибка?
Теперь пропишем Activity в манифесте. К нему нам надо будет добавить Intent Filter, в нем указать action = ACTION_VIEW
С таким action приложение не реагирует на кнопку, в смысле - вызывается лишь стандартный.
Хотя в манифесте уже правильный action и с ним все работает.
<action android:name="android.intent.action.VIEW"></action>

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 32. Пишем простой браузер

Сообщение damager82 » 26 мар 2012, 09:18

Здесь ACTION_VIEW - это название константы.

А ее значение = android.intent.action.VIEW
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Grigory
Сообщения: 7
Зарегистрирован: 30 май 2012, 15:51

Re: Урок 32. Пишем простой браузер

Сообщение Grigory » 13 июн 2012, 15:36

как запретить ему выбор из бруазеров? чтоб он сразу открывал в моем браузере а не предлагал два варианта

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 32. Пишем простой браузер

Сообщение damager82 » 15 июн 2012, 11:51

Grigory писал(а):как запретить ему выбор из бруазеров? чтоб он сразу открывал в моем браузере а не предлагал два варианта
IntentFilter и Action, как в уроке 26
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Grigory
Сообщения: 7
Зарегистрирован: 30 май 2012, 15:51

Re: Урок 32. Пишем простой браузер

Сообщение Grigory » 01 авг 2012, 14:30

у меня есть текстовое поле в которое я ввожу запрос. как его приплюсовать к строке
http://www.ya.ru/yandsearch?text= или http://www.google.ru/search?q=
например ввел слово: ipad
нажал на кнопку и открылся браузер который откроет http://www.ya.ru/yandsearch?text=ipad

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Урок 32. Пишем простой браузер

Сообщение Finch » 01 авг 2012, 14:39

Код: Выделить всё

String link = "http://www.ya.ru/yandsearch?text=" + текстовоеполе.getText().toString();
@Override
	public void onClick(View v) {
            if(текстовоеполе.getText().length() > 0) {
                браузер.loadUrl(link);
            } else {
                Toast.makeText(getApplicationContext(), "Поле не может быть пустым.", Toast.LENGTH_LONG).show();
            }
	}
CEO of a company R.id.team

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

Re: Урок 32. Пишем простой браузер

Сообщение 3Gern » 09 сен 2012, 11:21

на странице есть изображение (не лезет в экран), можно ли подогнать?

Overdos
Сообщения: 33
Зарегистрирован: 09 авг 2012, 20:58
Откуда: Краснодар

Re: Урок 32. Пишем простой браузер

Сообщение Overdos » 09 сен 2012, 17:24

Вот что у меня выскачило в мое браузере :
Изображение

3Gern
Сообщения: 25
Зарегистрирован: 30 июл 2012, 13:32

Re: Урок 32. Пишем простой браузер

Сообщение 3Gern » 09 сен 2012, 17:50

Overdos
прописали вот это ?

Код: Выделить всё

<uses-permission
        android:name="android.permission.INTERNET"/>
нужно ее прописывать не в application и не в uses-sdk, отдельно от них.

Overdos
Сообщения: 33
Зарегистрирован: 09 авг 2012, 20:58
Откуда: Краснодар

Re: Урок 32. Пишем простой браузер

Сообщение Overdos » 09 сен 2012, 18:51

3Gern > спасибо ! ошибка была в одной букве ) "permission - s " )

htk
Сообщения: 5
Зарегистрирован: 10 июл 2012, 10:09

Re: Урок 32. Пишем простой браузер

Сообщение htk » 17 сен 2012, 12:55

Есть такая проблема, интернет у меня через прокси сервер, после того как прописываю его в настройках на эмуляторе, стандартный браузер начинает работать, но WebView уперто отказывается выполнять свои обязанности, создалось впечатление что он просто не подхватывает эти настройки системы. Вам случайно не извесно решение такой проблемы?

Текст манифеста:

Код: Выделить всё

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET"/>

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

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

htk
Сообщения: 5
Зарегистрирован: 10 июл 2012, 10:09

Re: Урок 32. Пишем простой браузер

Сообщение htk » 17 сен 2012, 14:18

Решение проблемы с прокси найдено. Если комуто приголдится вот оно:
1) В методе onCreate после инициализации WebView используем метод enablePlatformNotifications(). Привер:
wView = (WebView) findViewById(R.id.wView);
wView.enablePlatformNotifications();
2) В манифесте добавляем такой пермиссион: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

dil_android
Сообщения: 103
Зарегистрирован: 10 сен 2012, 11:58

Re: Урок 32. Пишем простой браузер

Сообщение dil_android » 01 окт 2012, 10:12

Здравствуйте.

Такой вопрос: можно ли нестить какие-либо компоненты на WebView. Что-то типа webView.addView(layout for button);
Попробовал сам, дает ошибку. Покопался в Инете, говорят, что это не возможно. Так как?

P.S. Помню в awt Java был такой контейнер JPanel, который можно было выставлять transparent и нестить на нем всякое другое. Есть ли такое в android?

Ответить