У меня очень простой вариант использования, то есть программный вызов кнопки веб-страницы, загруженной в мое веб-представление.Ниже приведен код
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
//super.onPageFinished(view, url);
switch (view.getOriginalUrl()){
case Properties.LOGIN_URL:
webView.evaluateJavascript(
"javascript:" +
"var usernameField = document.getElementById('loginUserName');" +
"usernameField.value = '" + Properties.USERNAME + "';" +
"var passwordField = document.getElementById('loginPassword');" +
"passwordField.value = '" + Properties.PASSWORD + "';", null
);
webView.evaluateJavascript(
"javascript:" +
"document.getElementById('loginButton').click();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
}
}
);
break;
}
}
});
view.loadUrl(Properties.LOGIN_URL);
Впрыск поля имени пользователя и пароля работает нормально, но код для выполнения нажатия кнопки не работает.Я много искал и много экспериментировал, но безуспешно. Возможно ли это?
РЕДАКТИРОВАТЬ: URL-адрес, к которому я обращаюсь, является частным для нашей организации, находится на http и не защищен, не уверен, что это актуально.
Я перепробовал другую общедоступную страницу с полями для входа, и тот же код работает, и кнопка успешно нажата.