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

Обсуждение уроков
inumo
Сообщения: 3
Зарегистрирован: 28 мар 2014, 01:48

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

Сообщение inumo » 12 июл 2014, 22:19

самое смешное,что тебе тут никто не ответит,т.к. форум мертвый. Мне вон так до сих пор и не ответили,пока сам не нарыл в инете инфо.

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

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

Сообщение Foenix » 12 июл 2014, 23:00

sergeymild писал(а):Есть вопрос по webView бьюсь уже неделю не пойму как сделать, есть сервер который отдает api в виде json строки с html содержимым, там есть текст, ссылки, изображения, видео. Как сделать чтобы при клике на изображение оно открывалось в новом activity или fragmente для полного отображения пример как в приложении Tjournal при клике на изображение в новости оно открывается в новом активити? и такой же вопрос по видео уже не знаю что и делать совсем руки опускаются. перепробовал все и в интернете нет нормальных ответов на это.
ЛЮди тут есть и очень даже отвечают. А если не отвечают, то ли бо никто не сталкивался с этим, либо вопрос задан слишком общо (как в данном случае), либо это ерунда какая-нибудь, что лень отвечать и быстрее человек загуглит или наоборот - отвечать слишком долго, а тут все работают.

По данному вопросу - тут очень много всяких моментов. Обычно человек показывает код - что уже сделано и что не получается конкретно спрашивать нужно. Приложение, которое ты приводишь - никто не знает и не будет себе ставить, чтобы посмотреть как там оно открывается - сделай скриншоты, сюда прилепи, объясни что ты уже сделал, куда записал данные (покажи в какую коллекцию) и как организовал свое первое активити (можно со скриншотом).
А иначе - получишь такой же расплывчатый ответ в полабзаца и будешь репу чесать что с этим делать и правильно ли тебя поняли.
И вообще, сейчас выходные - прошу учесть. Народ во время выходных отдыхает и наверняка ответят в понедельник.
R.id.team

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

inumo
Сообщения: 3
Зарегистрирован: 28 мар 2014, 01:48

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

Сообщение inumo » 12 июл 2014, 23:07

ЛЮди тут есть и очень даже отвечают. А если не отвечают, то ли бо никто не сталкивался с этим, либо вопрос задан слишком общо (как в данном случае), либо это ерунда какая-нибудь, что лень отвечать и быстрее человек загуглит или наоборот - отвечать слишком долго, а тут все работают.
фигня всё это. У меня у самого уже много лет есть свой спец форум. и да же если я не знаю ответа, я НИ РАЗУ ни одного вопроса не оставил не отвеченным. А форумы,где есть не отвеченные вопросы месяцами - считаются "мертвыми", в независимости от того,есть ответ или нет. Для это и есть модераторы и админы которые следыт за этим,что бы форум не был похож на доску объявлений,иначе гнать в шею таких модеров!

сорри за оффтоп,если есть желание,напишу в личку адрес форума,да бы не считалось рекламой! или могу и тут запостить.

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

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

Сообщение Foenix » 12 июл 2014, 23:46

тут никакой обязаловки нет, нету штата админов и прочего. Все на энтузиастах. Вы вначале модерам заплатите, чтоб иметь право их куда-то гнать даже словами.
R.id.team

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

lekseyich
Сообщения: 4
Зарегистрирован: 23 июл 2014, 14:49

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

Сообщение lekseyich » 29 июл 2014, 11:56

Интересно, удобно и компактно получается писать код без определения вью элементов, в итоге код для второго активити у меня получился таким:

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

((WebView) findViewById(R.id.webView)).loadUrl(getIntent().getData().toString());
Но для многократной работы с определнным вью лучше конечно его определить заранее.

Polundra
Сообщения: 9
Зарегистрирован: 26 июл 2014, 20:19

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

Сообщение Polundra » 11 авг 2014, 14:39

Гуру, помогите! В рамках урока возникла проблема с уменьшением веб-страницы в WebView.
Для уменьшения страницы в WebView использую методы:

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

webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
также пробовал этот метод - результат тот же:

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

webview.setInitialScale(1);
Проблема: контент страницы уменьшается слишком сильно, создавая пустые поля по бокам, вот как это выглядит:
http://postimg.org/image/vhv5zvpk1/

Без методов уменьшения контент вылазит за пределы окна, так что дело не в HTML: http://postimg.org/image/6ue99x6bd/

HTML очень простой, содежрит один div и пару элементов:

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

<center><div align="center" class="txt" style="width:350px;">
<img src="cat.jpg" hspace="10" vspace="10" border="0" class="picbord"><br>
<strong>Title text</strong><br>
Description text is here<br>
<a href="link.php" class="txt2"><img src="button.png" width="152" height="29" hspace="10" vspace="10" border="0" /></a>
</div></center>
Буду очень признателен за помощь!

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

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

Сообщение Foenix » 16 авг 2014, 12:41

R.id.team

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

Polundra
Сообщения: 9
Зарегистрирован: 26 июл 2014, 20:19

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

Сообщение Polundra » 16 авг 2014, 18:36

Foenix: спасибо, не вариант. В статье речь о том, как улучшить ресайз под один определенный размер экрана (density конечно). И это даже работает, но при этом в остальных размерах все становится еще хуже.
P.S.: сделал нормальный ресайз средствами javascript и дело в шляпе.

joub
Сообщения: 1
Зарегистрирован: 08 сен 2014, 08:15

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

Сообщение joub » 08 сен 2014, 08:45

День добрый! А подскажите пожалуйста: где в проекте (внутри приложения) можно хранить готовую html страницу, и как её открыть в помощью WebView ?
Контент статический, должен сразу лежать внутри приложения...

paravoz
Сообщения: 2
Зарегистрирован: 21 авг 2014, 03:13

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

Сообщение paravoz » 06 окт 2014, 22:46

Добрый день)

Помогите разобраться почему приложение в логах выдает ошибки.
Screenshot_1.png
Screenshot_1.png (224.56 КБ) 10485 просмотров
Читал manual, понял мало чего, молод еще наверно)

Код в Manifest:
Screenshot_2.png
Screenshot_2.png (53.59 КБ) 10485 просмотров

julfyzzz
Сообщения: 1
Зарегистрирован: 14 окт 2014, 02:00

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

Сообщение julfyzzz » 14 окт 2014, 02:14

Доброго времени суток))
Подскажите пожалуйста, как сделать что бы в браузере отображался не весь сайт, а только его часть
Нужно отобразить часть сайта с результатами <div class="result-box">

dm1z
Сообщения: 7
Зарегистрирован: 23 ноя 2014, 01:09
Контактная информация:

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

Сообщение dm1z » 15 дек 2014, 14:04

вопрос в следующем:

есть java

package ru.wotandroid.prikol;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class Prikol extends ActionBarActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prikol);
mWebView = (WebView) findViewById(R.id.activity_main_webview);


// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("адрес сайта");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.prikol, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

при запуске приложения открывается сайт прописанный здесь mWebView.loadUrl("адрес сайта");

но проблема в том что при переходе по ссылке из приложения открывается внешний браузер!!!

как сделать что бы при переходе по ссылкам ссылки открывались в приложении???

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

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

Сообщение doter.ua » 15 дек 2014, 15:10

1. Заключайте код в теги code (есть значок на панели)
Чтобы решить данную проблему и открывать ссылки в своей программе, нужно переопределить класс WebViewClient и позволить нашему приложению обрабатывать ссылки. Добавим в коде вложенный класс:

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

private class HelloWebViewClient extends WebViewClient 
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.loadUrl(url);
        return true;
    }
}
Полная статья - http://developer.alexanderklimov.ru/and ... rowser.php
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

12345
Сообщения: 2
Зарегистрирован: 07 фев 2015, 00:25

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

Сообщение 12345 » 07 фев 2015, 00:30

Необходимо чтобы в созданном мною webview браузере открывались лишь ссылки моего сайта, а все ссылки ведующие на сторонние сайты открывались с использованием остальных установленных браузеров.
Можете подсказать какое условие прописать чтобы реализовать подобное.

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

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

Сообщение Foenix » 07 фев 2015, 00:38

изучи методы этого класса. там есть метод перехвата ссылок, проверяй ихи подставляй свои
R.id.team

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

12345
Сообщения: 2
Зарегистрирован: 07 фев 2015, 00:25

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

Сообщение 12345 » 14 фев 2015, 23:58

с этим вопросом разобрался.

Теперь интересует как можно узнать текст ссылки, которая была нажата, т.е. к примеру имеем ссылку <a href="ya.ru">Яндекс</a>
Т.е. в случае нажатия на указанную cсылку надо получить в результат ее значение = Яндекс

Аватара пользователя
Хомка Хомячок
Сообщения: 16
Зарегистрирован: 03 фев 2015, 10:39
Контактная информация:

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

Сообщение Хомка Хомячок » 16 фев 2015, 17:45

caHek2x писал(а):все нашел .... если кому пригодится вот код ...

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

text.setWebChromeClient(new WebChromeClient() {
	public void onProgressChanged(WebView view, int progress)
	{
		loading.setText("Идет загрузка ["+progress+"%], ожидайте...");
		System.out.println("progress "+progress);
		if (progress < 100 && loading.getVisibility() == TextView.GONE) {
			loading.setVisibility(TextView.VISIBLE);
		}
		if (progress == 100) {
			loading.setVisibility(TextView.GONE);
		}
	}
});
text - это WebView
loading - это TextView
Спасибо! :)
Полосатенький Бочок

Аватара пользователя
Хомка Хомячок
Сообщения: 16
Зарегистрирован: 03 фев 2015, 10:39
Контактная информация:

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

Сообщение Хомка Хомячок » 21 фев 2015, 03:55

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

mWebView.setWebChromeClient(new WebChromeClient() {
public void onSelectionStart(WebView view) {
}
});

Не появляются!
Эти Штучки в студию,господа-товарищи программисты! В студию пожалуйста! :D
Полосатенький Бочок

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

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

Сообщение stabby » 02 мар 2015, 13:56

Объясните новичку пожалуйста, а то потерял нить(из урока):
Uri data = getIntent().getData();
webView.loadUrl(data.toString());
читаем data из Intent и передаем строку в WebView. Откуда он знает, из какого интента брать? Например, если было бы 2 или 3 активити?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

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

Сообщение doter.ua » 02 мар 2015, 17:41

stabby писал(а):Объясните новичку пожалуйста, а то потерял нить(из урока):
Uri data = getIntent().getData();
webView.loadUrl(data.toString());
читаем data из Intent и передаем строку в WebView. Откуда он знает, из какого интента брать? Например, если было бы 2 или 3 активити?
Когда посылаешь интент указываешь реквест код, который и будет идентификатором
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Ответить