Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
ilnurgi
138 / 138 / 38
Регистрация: 20.02.2012
Сообщений: 597
#1

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

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

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

Подскажите пожалуйста, каким образом управлять процессом загрузки страниц.
А именно, загрузил я страницу в вебвию, пользователь тыкнул какую то ссылку, дальше идет переход по этой ссылке.
http://www.cyberforum.ru/android-dev/thread1717198.html
Мне надо в этот запрос, добавить свои заголовки, какие-то параметры. Или вообще прекратить загрузку если урл мне нравится.

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
Всем привет.У меня вопросище. Или я так привык к шарпику, что разобраться...

WebView
У меня есть лист меню, как сделать так что бы при нажатии на первый объект так...

WebView
Добрый день! Мне нужно выполнить действие после полной загрузки страницы в...

WebView zoom
Необходимо автоматически промасштабировать содержимое WebView. WebView.zoomBy...

Gif в WebView
В одном известном браузере просмотр гиф реализован так: статическая картинка...

1
petruchodd
123 / 120 / 17
Регистрация: 23.06.2009
Сообщений: 644
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
В общем то в этом и вопрос Возможно ли WebView сделать прозрачным? чтобы...

Работа с webview
Привет ребята! У меня следующая проблема. for (String key : map.keySet()) { ...

WebView + JSOUP
Добрый день. Приложение падает с ошибкой. Подскажи, пожалуйста, в чем...

Из WebView в TextView
С WebView всё легко. Чтобы загрузить страницу, нужно всего-то воспользоваться...


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

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

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