Ich habe ein Webview, das this website öffnet. Wie wir sehen können, hat es ein Eingabefeld. Ich möchte dieses Eingabefeld automatisch mit meinen Daten füllen und auf den Absenden-Button klicken. Hier ist, was ich für AutoFill versuche, aber es funktioniert nicht.Autofill Webview Formular
public class WebViewActivity extends AppCompatActivity {
private WebView webView;
String url = "http://www.indianrail.gov.in/pnr_Enq.html", pnrNumber = "";
ProgressBar pb;
Toolbar toolbar;
private Tracker mTracker;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_website);
init();
}
private void init() {
pnrNumber = getIntent().getStringExtra("pnrNumber");
pb = (ProgressBar) findViewById(R.id.progressBar);
pb.getProgressDrawable().setColorFilter(ContextCompat.getColor(this, R.color.White), PorterDuff.Mode.SRC_IN);
webView = (WebView) findViewById(R.id.webView);
this.webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setDomStorageEnabled(true);
webView.loadUrl(url);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
pb.setProgress(progress);
if (progress == 100) {
pb.setProgress(0);
}
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView v, String url) {
v.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView v, String url) {
v.loadUrl("javascript:document.forms[0].lccp_pnrno1.value = '"+pnrNumber+"';");
}
});
}
@Override
public void onResume() {
super.onResume();
mTracker.setScreenName("WebView Fragment with " + url);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());
}
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
webView.stopLoading();
}
@Override
public void onStop() {
super.onStop();
// The rest of your onStop() code.
webView.stopLoading();
}
}
Fehle ich etwas.?
Wie haben Sie die lccp_cap_value und lccp_capinp_value überprüft? Auch da ich die Anfrage von einer App mit verschiedenen PNRs senden werde, wird es mit den gleichen Werten arbeiten. – Akshat
Ich habe es überprüft, indem ich die HTML-Quelle Ihrer gegebenen Webseite überprüft habe. In Zeile 618 und 619 sind die Cap- und Capinp-Werte angegeben. Und ja, Sie können versuchen, die Cap- und Capinp-Werte statisch zu belassen (24357) und nur den pnrno1-Wert ändern. Das hat für mich funktioniert. – Janno
http://i.imgur.com/wY2lzyV.png – Janno