WebViewClient始终重新加载网站

时间:2013-12-29 22:53:16

标签: java android webview reload

我的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);
                }
            });



    }

    }

}

如果有什么不对的话,请提前谢谢你,对我的英语说道歉。 :)

1 个答案:

答案 0 :(得分:0)

当调用onPageFinished(...)时(页面加载时),再次调用view.loadUrl("xyz.com"),重新加载页面。您可以创建某种外部计数器,以检查您是否已注入相应的js变量,而不是再次调用loadUrl(...)