Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

onPageFinished() never called (webview)!

Tags:

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();        }        });     } } 
like image 781
user420574 Avatar asked Jul 16 '11 19:07

user420574


1 Answers

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

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"); 
like image 121
mportuesisf Avatar answered Oct 31 '22 17:10

mportuesisf