Показать сообщение отдельно
Старый 15.12.2011, 00:14   #1
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Как контролировать WebView?

вопрос: Как прочитать текст страницы загруженной в WebView?

на Activity нет никаких элементов управления, кроме WebView. я свободно прыгаю по сайту/сайтам, которые открываются не в стандартном браузере, а в том же WebView (при этом работают скрипты со страниц, например проводится многостраничная регистрация на сайте). мне бы хотелось знать, что отображается на страницах, чтобы отловить какое-то кодовое слово, признак, по которому я решу, что сеанс завершен и закрою Activity, сохранив, полученные данные в глобальных переменных.

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

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

package ru.jru.sru;

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class 
RegActivity extends Activity {

    private class 
wvClient extends WebViewClient {
        @
Override
        
public boolean shouldOverrideUrlLoading(WebView viewString url) {
            
view.loadUrl(url);
            return 
true;
        }
    }
    
    public 
WebView wvReg;
    
    @
Override
    
public void onConfigurationChanged(Configuration newConfig) {
        
super.onConfigurationChanged(newConfig);
    }
    
    public 
void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.regform);
        
wvReg = (WebView)findViewById(R.id.wvReg);
        
wvReg.setWebViewClient(new wvClient());
        
wvReg.getSettings().setJavaScriptEnabled(true);
        
wvReg.loadUrl("http://www.mysite.ru/registration.php?request=newuser");
    }
    
    public 
boolean onKeyDown(int keyCodeKeyEvent event
    {
        if ((
keyCode == KeyEvent.KEYCODE_BACK) && wvReg.canGoBack()) 
        {
            
wvReg.goBack();
            return 
true;
        }
        return 
super.onKeyDown(keyCodeevent);
    }




хотелось бы использовать именно WebView, а не всяческие post-запросы, так как нужно оставить возможность развития и изменения серверной части (регистрационные данные и внешний вид страниц будет со временем меняться).
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Ответить с цитированием