首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebViewClient总是重新加载站点

WebViewClient总是重新加载站点
EN

Stack Overflow用户
提问于 2013-12-30 06:53:16
回答 1查看 89关注 0票数 0

我的WebViewClient总是重新加载它显示的站点。看起来像是频闪镜。首先,它从另一个活动中获取自己的值,然后插入javascript支持的值,并到达“目标”站点。在执行此操作之前,一切正常,但随后它会闪烁。我怎样才能防止这种情况呢?下面是我的代码:

代码语言: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);
                }
            });



    }

    }

}
EN

回答 1

Stack Overflow用户

发布于 2013-12-30 09:39:30

当调用onPageFinished(...)时(页面加载完成后),再次调用view.loadUrl("xyz.com"),这将重新加载页面。您可以创建某种外部计数器来检查是否已经注入了适当的js变量,并且不会再次调用loadUrl(...)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20830999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档