Программно войти на сайт - PullRequest
2 голосов
/ 12 июня 2011

Привет, я хотел бы программным способом заполнить формы входа в систему и вызвать кнопку для входа на какой-либо веб-сайт.

Я пытаюсь добиться этого, как в следующем фрагменте:

public class LoginActivity extends Activity {
WebView mWebView;
Button btn;
EditText txtLogin;
EditText txtPassword;
WebView webview;

@Override
public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
    btn = (Button)this.findViewById(R.id.button1); 
    txtLogin = (EditText)this.findViewById(R.id.txtLogin);
    txtPassword = (EditText)this.findViewById(R.id.txtPassword);
    webview = (WebView)findViewById(R.id.webView1);  
    webview.setWebViewClient(new WebClient());
    webview.getSettings().setJavaScriptEnabled(true);
    btn.setOnClickListener(new OnClickListener() 
    { 
         public void onClick(View v) 
         { 

             OpenWebContent();
         } 
    });         

}
public void OpenWebContent()
{
     webview.loadUrl("http://www.www.com");          
}

public class WebClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) 
    {       

                view.loadUrl("javascript:(function() { " +  
                  "document.getElementsByTagName('user').value = " + "'mylogin'" + ";" +
                 "document.getElementsByTagName('password').value = " + "'mypassword'" + ";" +
                 "document.getElementsByTagName('input')[4].click(); " +  
                 "})()");   

    }
}

код выше не работает.Я что-то пропустил?Спасибо за любое предложение.

1 Ответ

2 голосов
/ 04 октября 2011

Прежде всего - поддерживаются не все методы javascript (хотя я не смог найти список поддерживаемых и неподдерживаемых).

В этом случае я думаю, что вы должны следовать этому простому примеру .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...