С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ilnurgi
137 / 137 / 18
Регистрация: 20.02.2012
Сообщений: 596
#1

Webview, контроль загрузки страниц - Программирование Android

16.08.2016, 10:50. Просмотров 313. Ответов 1
Метки нет (Все метки)

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

Подскажите пожалуйста, каким образом управлять процессом загрузки страниц.
А именно, загрузил я страницу в вебвию, пользователь тыкнул какую то ссылку, дальше идет переход по этой ссылке.
Мне надо в этот запрос, добавить свои заголовки, какие-то параметры. Или вообще прекратить загрузку если урл мне нравится.

Java
1
2
3
4
5
6
webView = (WebView) findViewById(R.id.web_view);
 
webView.loadUrl(url);
 
webView.setWebViewClient(new WebViewClient() {});
webView.setWebChromeClient(new WebChromeClient() {});
WebViewClient имеет только методы нотификации, типа началась загрузка или загрузка завершена.
А вот как именно управлять загрузкой, не пойму.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    Toast.makeText(getApplicationContext(), "shouldOverrideUrlLoading", Toast.LENGTH_SHORT).show();
    return super.shouldOverrideUrlLoading(view, request);
}
 
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
    Handler handler = new Handler(getMainLooper());
    handler.post(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), "shouldInterceptRequest", Toast.LENGTH_SHORT).show();
            }
        });
 
    return super.shouldInterceptRequest(view, request);
}
первый у меня чето не выполняется, не вижу всплывающих сообщений.

а во втором, у реквеста нету методов для его изменения.
конечно можно создать новый, но мне нужны все данные исходного реквеста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2016, 10:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Webview, контроль загрузки страниц (Программирование Android):

Не правильное отображение веб страниц в webView - Программирование Android
Подскажите в чем может быть проблема. в webView открываю страницу mWebView.loadUrl("http://stackoverflow.com"); Страница...

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

WebView - Программирование Android
Добрый день! Мне нужно выполнить действие после полной загрузки страницы в WebView. Нужно что-то типа Qtшного сигнала...

Webview - Программирование Android
Всем привет.У меня вопросище. Или я так привык к шарпику, что разобраться совсем тяжко. Поехали, суть такова , необходимо просто...

Прозрачность WebView - Программирование Android
В общем то в этом и вопрос Возможно ли WebView сделать прозрачным? чтобы image, который является Activity backgroung был под ним виден. ...

Из WebView в TextView - Программирование Android
С WebView всё легко. Чтобы загрузить страницу, нужно всего-то воспользоваться одной строкой кода: WebView.loadUrl("http://example.com"); ...

1
petruchodd
109 / 106 / 11
Регистрация: 23.06.2009
Сообщений: 585
16.08.2016, 16:12 #2
не знаю поможет или нет. Когда-то делал таким способ подгрузку нужного javascript кода в webview , так как сайт был написан по новой методике и старые браузеры в андроидах не поддерживали функции javascript
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
view.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
 
                String javascript_promise = "javascript:"+PROMISE_JS;
                view.loadUrl(javascript_promise);
                //reload script on server
                String reloadString = "var head= document.getElementsByTagName('head')[0];\n" +
                        "      var script= document.createElement('script');\n" +
                        "      script.type= 'text/javascript';\n" +
                        "      script.src= someUrl;\n" +
                        "      head.appendChild(script);";
                String reload = "javascript:"+reloadString;
                view.loadUrl(reload);
                // re-run
                view.loadUrl( "javascript:var scripts = document.querySelectorAll('script'); var news = document.createElement('script'); news.setAttribute('type','text/javascript'); news.appendChild(document.createTextNode(scripts[scripts.length-4].innerText)); document.head.appendChild(news);" );
             }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2016, 16:12
Привет! Вот еще темы с ответами:

WebView в фоне - Программирование Android
Нужно в webview открыть определенную ссылку, однако на сайте стоит защита , и открывается только с браузера. Каким образом можно...

Кодировка в WebView - Программирование Android
Открываю в WebView html-файл из assets через метод loadUrl(String) и вижу вместо русских символов знаки вопроса в черных ромбах. Задавал...

Gif в WebView - Программирование Android
В одном известном браузере просмотр гиф реализован так: статическая картинка (фрейм), после клика по нему этот фрейм преобразуется в гифку....

Работа с webview - Программирование Android
Привет ребята! У меня следующая проблема. for (String key : map.keySet()) { textView.append("\n\t"+key + "\n"); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.