作为自动填充流程中某些字段的一个步骤,我需要抓取一个由JavaScript动态填充其有趣内容的URL。
根据汽车牌照,我可以在government website上查找信息,设置选项和值并提交。
结果页面将在不同的标签中保存所需的内容,因此我还必须浏览这些内容。 (抱歉无法直接链接到这个,但选择“Registreringsnummer”,使用“YN28579”作为值,然后按“Søg”将转到该页面。)
我在另一个Activity中使用WebViewClient完成了这项操作,因此可以直接在Android手机/平板电脑上浏览网站。但是在这个其他Activity中,我不想显示生成的页面只是刮掉一些数据项。
以下是我使用WebViewClient完成的工作:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
((Button)findViewById(R.id.btnBack)).setVisibility(View.VISIBLE);
wv = (WebView) findViewById(R.id.wv);
reg = getIntent().getStringExtra("reg");
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient() {
private ProgressDialog pd;
private int count = 0;
@Override
public void onPageFinished(WebView view, String url) {
if (count==1) {
view.loadUrl("javascript:document.getElementById('regnr').checked=true;"
+"document.getElementById('soegeord').value='"+reg+"';"
+"document.getElementById('searchForm').submit();"
+"DMR.WaitForLoad.on();");
} else if (count>=2) {
view.loadUrl("javascript:document.body.innerHTML " +
"= '<div class=\"tabNav\">'+document.getElementsByClassName('tabNav')[0].innerHTML+'</div>';" +
"document.getElementsByClassName('h-tab-content')[0].style.width='320px';" +
"document.getElementsByClassName('h-tab-btns')[0].style.width='320px';" +
"document.getElementsByClassName('h-tab-btns')[0].style.height='45px';" +
"document.getElementsByTagName('ul')[0].style.display='inline';" +
"document.head.appendChild='<meta name=\"viewport\" content=\"width=device-width\">';" +
"document.body.style.minWidth ='300px';");
if (pd!=null) {
pd.dismiss();
}
view.setVisibility(View.VISIBLE);
}
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (pd==null || !pd.isShowing()) {
pd = ProgressDialog.show(SkatActivity.this, "cars.dk", "Vent venligst...", true, false);
}
count++;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
wv.loadUrl("https://motorregister.skat.dk/dmr-front/appmanager/skat/dmr?_nfpb=true&_nfpb=true&_pageLabel=vis_koeretoej_side&_nfls=false");
}
我似乎无法弄清楚如何将其纳入其中 您是否将WebView设置为不可见?发现this question似乎正在沿着这些相同的路线工作,但我无法弄清楚如何隐藏这个工作的WebViewClient但可以在其他活动中使用?