onPageFinished() never called (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();
}
});
}
}
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");
@mportuesisf is 100% correct, also note in the callback you're calling the wrong webview's onPageFinished. This might be relevant if you have multiple webviews using the client. I would fix:
super.onPageFinished(mWebView, url);
to
super.onPageFinished(view, url);
精彩评论