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

Обсуждение уроков
stabby
Сообщения: 6
Зарегистрирован: 06 фев 2015, 09:29

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

Сообщение stabby » 03 мар 2015, 09:33

doter.ua писал(а): Когда посылаешь интент указываешь реквест код, который и будет идентификатором
public void onClick(View v) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.ya.ru")));
}
можно поподробнее?

Novgor
Сообщения: 17
Зарегистрирован: 07 апр 2015, 17:15

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

Сообщение Novgor » 03 май 2015, 12:40

В чём проблема?

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

C:\Users\Novgorpc\AndroidStudioProjects\P0321_SimpleBrowser\app\build\intermediates\manifests\full\debug\AndroidManifest.xml
Error:(33) No resource identifier found for attribute 'sheme' in package 'android'
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Android\SDK\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1
Information:BUILD FAILED
Information:Total time: 2.303 secs
Information:2 errors
Манифест

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="by.novgor.p0321_simplebrowser"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="22" />

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="by.novgor.p0321_simplebrowser.BrowserActivity"
            android:label="Browser" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:sheme="http" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

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

Сообщение Foenix » 03 май 2015, 22:42

<data android:sheme="http" />
что ты хотел эти сказать?
я не знаю что это значит, честно говоря, но если даже брать английский язык - тут в слове ошибка. Схема - scheme
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Novgor
Сообщения: 17
Зарегистрирован: 07 апр 2015, 17:15

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

Сообщение Novgor » 04 май 2015, 10:51

Foenix писал(а):<data android:sheme="http" />
что ты хотел эти сказать?
я не знаю что это значит, честно говоря, но если даже брать английский язык - тут в слове ошибка. Схема - scheme
исправление ошибки не помогло. Этот код был в уроке. http://startandroid.ru/ru/uroki/vse-uro ... auzer.html

Alf
Сообщения: 2
Зарегистрирован: 01 июн 2015, 12:49

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

Сообщение Alf » 01 июн 2015, 13:08

На эмуляторе урок 32 работает корректно - при нажатии кнопки "web" появляется список доступных Activity, выбираю BrowserActivity, страница отображается внутри WebView, всё хорошо.

На реальном устройстве с ОС Android 4.0.4 (API 15) этот урок работает странно. Нажимаю кнопку "web", появляется список доступных Activity, выбираю всё тот же BrowserActivity, появляется новая пустая Activity (видимо с WebView), через 2-3 секунды ожидания появляется список для выбора одного из стандартных браузеров (нашего BrowserActivity в нём уже не наблюдается), выбираю например Firefox и страница открывается в Firefox-е, но не в моём созданном WebView ! В чём может быть проблема ?

<user-permission> в манифест добавлено, Интернет на планшете работает, но страница в созданном WebView всё равно не открывается, WebView остаётся пустым и выплёвывает список для выбора иного браузера.

P.S. При этом абсолютно все ранее созданные уроки (1-31) на этом реальном устройстве запускались без проблем и в точности соответствовали тому, что я наблюдал на эмуляторе.

Alf
Сообщения: 2
Зарегистрирован: 01 июн 2015, 12:49

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

Сообщение Alf » 01 июн 2015, 18:15

Как часто бывает, сам спросил - сам ответил ) Разобрался в чём дело. Оказывается, http://ya.ru приведён в примере не с проста, видимо это чистый HTML безо всяких JavaScript и прочих погремушек. Т.е. страницу http://ya.ru WebView открывает без проблем, а вот http://yandex.ru или http://mail.ru - уже перенаправляет на настоящие браузеры. И эмулятор тут ни при чём, это просто моё ложное впечатление. На эмуляторе тоже браузер запускается для http://yandex.ru, но без списка выбора, т.к. на эмуляторе он один одинёшенек, а на планшете у меня браузеров как минимум 3 штуки.

primumvivere
Сообщения: 1
Зарегистрирован: 16 июн 2015, 14:25

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

Сообщение primumvivere » 16 июн 2015, 14:27

Alf писал(а):Как часто бывает, сам спросил - сам ответил ) Разобрался в чём дело. Оказывается, http://ya.ru приведён в примере не с проста, видимо это чистый HTML безо всяких JavaScript и прочих погремушек. Т.е. страницу http://ya.ru WebView открывает без проблем, а вот http://yandex.ru или http://mail.ru - уже перенаправляет на настоящие браузеры. И эмулятор тут ни при чём, это просто моё ложное впечатление. На эмуляторе тоже браузер запускается для http://yandex.ru, но без списка выбора, т.к. на эмуляторе он один одинёшенек, а на планшете у меня браузеров как минимум 3 штуки.
Спасибо! была такая же проблема теперь все понятно=) :D

OpenGl
Сообщения: 10
Зарегистрирован: 10 янв 2016, 19:58

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

Сообщение OpenGl » 12 янв 2016, 19:13

Всем добра!!!
Задался вопросом, можно ли убрать строку адреса сверху? Что бы человек не подозревал что открывается сайт?

OpenGl
Сообщения: 10
Зарегистрирован: 10 янв 2016, 19:58

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

Сообщение OpenGl » 13 янв 2016, 20:31

При открытии сайта пишит что то типо для использования сайта нужен js что делать?

Игорь174
Сообщения: 1
Зарегистрирован: 26 фев 2016, 13:16

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

Сообщение Игорь174 » 29 фев 2016, 14:03

ошибка, в чем проблема так и не могу понять

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

Error:Execution failed for task ':app:validateExternalOverrideSigning'.
> Keystore file C:\Users\adm\AndroidStudioProjects\SimpleBrowser\test not found for signing config 'externalOverride'.

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

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

Сообщение v_grechka » 23 июн 2016, 11:42

webView.getSettings().setJavaScriptEnabled(true);
активирует ява-скрипты. Курите
http://developer.alexanderklimov.ru/and ... rowser.php

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

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

Сообщение v_grechka » 23 июн 2016, 13:41

Может кому пригодиться масштабирование и использование setWebChromeClient

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

  webView.getSettings().setJavaScriptEnabled(true);
      webView.getSettings().setBuiltInZoomControls(true);
      webView.getSettings().setLoadWithOverviewMode(true);
      webView.getSettings().setUseWideViewPort(true);
      webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
      webView.setScrollbarFadingEnabled(false);
      //webView.setInitialScale(70);
    final Activity activity = this;
    webView.setWebChromeClient(new WebChromeClient() {
      public void onProgressChanged(WebView view, int progress) {
        // Activities and WebViews measure progress with different scales.
        // The progress meter will automatically disappear when we reach 100%
        activity.setProgress(progress * 1000);
      }
    });
    webView.setWebViewClient(new WebViewClient() {
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
      }
    });

ГуАлСе
Сообщения: 5
Зарегистрирован: 16 июн 2016, 20:15
Откуда: Москва

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

Сообщение ГуАлСе » 04 июл 2016, 00:18

Здравствуйте, а можно как-то скачать html код с сайта в string?
Если да, то как?
Спасибо!

Serega_Alfach
Сообщения: 5
Зарегистрирован: 13 авг 2016, 17:54

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

Сообщение Serega_Alfach » 20 авг 2016, 14:20

Доброго времени суток, подскажите пожалуйста, почему activity с webView(My Browser) не хочет отображать страницу Яндекса (адрес, который мы задали в первом activity "http://www.ya.ru"), по истечению 3-4 секунд оно сворачивается и открывается стандартный браузер и показывает эту страницу Яндекса. Аctivity "My Browser" пустое на белом фоне (можно увидеть если переключится). Только когда добавить строку

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

webView.setWebViewClient(new WebViewClient());
после строки

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

webView.loadUrl(data.toString());
всё корректно работает. Почему так, ведь в уроке этой строки нет, я нашёл её на форуме?

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

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

Сообщение v_grechka » 13 дек 2016, 15:52

На работе стоит wifi роутер. На нем админ настроил доступ в инет.
Если доступ в инет осуществлять через 3G тестовая прога с WebView работает,
если через роутер - пишет ошибка подключения.
Все другие андроид-приложения в т.ч. стандартніе браузеры
работают на обоих коннектах.
Читал в инете, что стандартный порт для WebView 8080.
Собственно вопрос... как переопределить порт?

vital8111
Сообщения: 3
Зарегистрирован: 15 мар 2017, 15:26

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

Сообщение vital8111 » 15 мар 2017, 15:32

Добрый день коллеги.
Такая проблема.
Сделал все как в уроке, но...
При нажатии на кнопку вызывается активити MyBrowser, а оно в свою очередь не открывает страницу, а вызывает стандартный браузер и уже он открывает страницу ya.ru.
Android 5.0(Genymotion) и Android 6.0(ASUS ZE601KL) ведут себя идентично.
В чем может быть проблема.
Спасибо.

Аватара пользователя
Юрий Кузьминов
Сообщения: 1
Зарегистрирован: 18 сен 2017, 13:51
Откуда: Казахстан

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

Сообщение Юрий Кузьминов » 20 сен 2017, 07:42

Доброго дня всем! Скомпилировал приложение по вашему уроку, всё работает, могли бы вы помочь в вопросе, как переопределить класс, что бы "MyBrowser", открывал все ссылки на загружаемoй страницы, без вызова сторонних и системных браузеров? Сколько пробовал, компилятор ругается на добавление особенно на "WebWiew".

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

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;

public class BrowserActivity extends Activity {

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

    WebView webView = (WebView) findViewById(R.id.webView);
    Uri data = getIntent().getData();
    webView.loadUrl(data.toString());
  }
}

SherzodBek
Сообщения: 2
Зарегистрирован: 28 янв 2018, 12:09

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

Сообщение SherzodBek » 28 янв 2018, 12:17

Доброго времени суток!
Такая проблема.
Сделал все как в уроке, но...
При нажатии на кнопку вызывается активити MyBrowser, а оно в свою очередь не открывает страницу, а вызывает стандартный браузер и уже он открывает страницу ya.ru.
В чем может быть проблема.
Android 7.1.2, API 25
За ранее спасибо!
На Девайсе стандартный браузер это Chrom, Сhrom-О приложении-Открывать по умолчанию-Настройки по умолчанию не установлены!

SherzodBek
Сообщения: 2
Зарегистрирован: 28 янв 2018, 12:09

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

Сообщение SherzodBek » 28 янв 2018, 13:00

Все я сам исправил! Забыл кодить <category android:name="android.intent.category.DEFAULT"/> на Манифесте!
<activity android:name=".Browser">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="http"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

mkey
Сообщения: 1
Зарегистрирован: 04 мар 2018, 09:56

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

Сообщение mkey » 04 мар 2018, 10:35

Добрый день!
Вопрос: где находится этот настройщик манифеста, скрины которого в уроке? Никак не могу найти, может в новой версии студии его нет?

Ответить