在下一页: 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')");
}
该字段以可视方式填写,但提交后不会获取该值。 他们的内容刚刚被删除...
最佳答案
这是关于你的shouldOverrideUrlLoading方法,请看一下这个Android文档:link并搜索shouldOverrideUrlLoading部分,您需要在此方法中返回false。
关于javascript - 填写表格正常,但验证不采用字段内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52521431/