我的WebViewClient总是重新加载它显示的网站。它看起来像一个频闪仪。 首先,它从另一个活动中获取他的值,而不是通过javascript支持它们并进入“目标”站点。到目前为止,一切都还可以,但随后它就会闪烁。我怎么能防止这种情况?这是我的代码:
public class Webview extends Activity {
WebView webView;
String site = "xyz.com";
private String bnm, pwd1;
private ProgressBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
webView = (WebView) findViewById(R.id.webView1);
bnm = getIntent().getStringExtra("benutzername");
pwd1 = getIntent().getStringExtra("password");
website(site);
}
public void website(String website) {
website = site;
bar = (ProgressBar) findViewById(R.id.progressBar1);
webView.setVisibility(View.GONE);
bar.setVisibility(View.VISIBLE);
if (!DetectConnection.checkInternetConnection(this)) {
Toast.makeText(getApplicationContext(), "No Internet!",
Toast.LENGTH_LONG).show();
Intent intent = new Intent(Webview.this, MainActivity.class);
startActivity(intent);
} else {
webView.loadUrl(site);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
String user=bnm;
String pwd= pwd1;
view.loadUrl("javascript:document.getElementById('username').value = '"+user+"';document.getElementById('password').value='"+pwd+"';"+"document.getElementById('submit').click();");
view.loadUrl("xyz.com");
bar.setVisibility(View.GONE);
webView.setVisibility(View.VISIBLE);
}
});
}
}
}
如果有什么不对的话,请提前谢谢你,对我的英语说道歉。 :)
答案 0 :(得分:0)
当调用onPageFinished(...)
时(页面加载时),再次调用view.loadUrl("xyz.com")
,重新加载页面。您可以创建某种外部计数器,以检查您是否已注入相应的js
变量,而不是再次调用loadUrl(...)
。