Заполните форму ОК, но проверка не принимает содержимое полей - PullRequest
0 голосов
/ 26 сентября 2018

На следующей странице: https://teleservices.ac -nancy-metz.fr / login / ct_logon_vk.jsp

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

    webView = (WebView) findViewById(R.id.travail_activity_webview);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
            if (!loadingFinished) {
                redirect = true;
            }
            loadingFinished = false;
            view.loadUrl(urlNewString);
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            loadingFinished = false;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            Log.e("Page finished", "url : " +url);
            if(!redirect){
                loadingFinished = true;
            }

            if(loadingFinished && !redirect){
                if (!connected) {
                    completionIdentifiants();
                    connected=true;
                } else if (!portailled){
                    accesPortail();
                    portailled=true;
                }


            } else{
                redirect = false;
            }
        }
    });

private void accesPortail() {
    webView.loadUrl("https://teleservices.ac-nancy-metz.fr/login/ct_logon_vk.jsp");
}



public void completionIdentifiants() {
    webView.loadUrl("javascript:var x = document.getElementById('user').value = 'mylogin';");
    webView.loadUrl("javascript:var y = document.getElementById('password').value = 'mypass';");
    webView.loadUrl("javascript:var z = window.document.getElementById('myform').submit();");
    webView.loadUrl("javascript:alert('Test')");
}

Поле заполняется визуально, но значение не принимается после отправки.Их содержимое просто стерто ...

Я перепробовал множество комбинаций, но безуспешно. enter image description here

1 Ответ

0 голосов
/ 26 сентября 2018

Речь идет о вашем shouldOverrideUrlLoading , посмотрите на эту документацию Android: ссылка и найдите раздел shouldOverrideUrlLoading, вам нужно вернуть false вэтот метод.

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