onPageFinished() 从未调用过 (webview)! [英] onPageFinished() never called (webview)!

查看:38
本文介绍了onPageFinished() 从未调用过 (webview)!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 webview 完全加载时显示一个祝酒词.但是吐司从来没有出现,我不知道为什么..这是我的代码:

I want to show a toast when the webview is totally loaded. But the toast never show up, i don't know why..here is my code:

public class WebViewSignUp extends Activity{

    WebView mWebView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webviewsignup);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);

        ((TextView)findViewById(R.id.home)).setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                finish();
            } 
         });

    mWebView.setWebViewClient(new WebViewClient() {
        @Override  
        public void onPageFinished(WebView view, String url) {
             super.onPageFinished(mWebView, url);

            Toast.makeText(getApplicationContext(), "Done!", Toast.LENGTH_SHORT).show();
        }  
    });
    mWebView.loadUrl("http://pabebbe.com/m/register");

    mWebView.setWebViewClient(new WebViewClient() {
       public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
         Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show();
       }
       });
    }
}

推荐答案

第二次调用 setWebViewClient() 会覆盖第一次.

The second call to setWebViewClient() is overwriting the first.

仅创建 WebViewClient 的一个实例,并在同一类中使用两个覆盖,并且只调用一次 setWebViewClient.然后加载 Web 视图:

Create only a single instance of WebViewClient with both overrides in the same class, and call setWebViewClient only once. Then load the Webview:

mWebView.setWebViewClient(new WebViewClient() {
    @Override  
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(mWebView, url);
        Toast.makeText(getApplicationContext(), "Done!", Toast.LENGTH_SHORT).show();
    }  

    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show();
    }
});
mWebView.loadUrl("http://pabebbe.com/m/register");

这篇关于onPageFinished() 从未调用过 (webview)!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆