1
我有一个webview,它打开this website。我们可以看到它有一个输入字段。我想用我的数据自动填充该输入字段,并自动点击提交按钮。这是我正在尝试自动填充,但它不工作。自动填充webview表单
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();
}
}
我错过了什么。
你是如何检查lccp_cap_value和lccp_capinp_value的。此外,因为我将发送来自具有不同PNR的应用程序的请求,它将使用相同的值。 – Akshat
我通过检查给定网页的HTML源代码来检查它。第618行和第619行是cap和capinp值。是的,您可以尝试将cap和capinp值保持为静态(24357),然后更改pnrno1值。这对我有效。 – Janno
http://i.imgur.com/wY2lzyV.png – Janno