Phonegap de Android: TIMEOUT ERROR al intentar configurar un WebViewClient
Estoy trabajando con Android y Phonegap, y en este momento estoy teniendo problemas con una cosa simple. Necesito configurar un webViewClient para PhoneGap webView para capturar la URL de una página terminada y trabajar con eso.
Este es el código:
public class PhoneGapTest extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setBooleanProperty("loadInWebView", true);
super.clearCache();
super.keepRunning = false;
super.loadUrl("file:///android_asset/www/index.html");
super.appView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("TEST", "onPageFinished: " + url);
}
});
}
Ese código no parece funcionar, la página nunca se carga y aparece un ERROR DE TIEMPO, pero si elimino la parte "setWebViewClient" la página se carga perfectamente.
Vi que hay una clase CordovaWebViewClient, ¿tengo que usar eso en lugar de WebViewClient? Encontré esta manera en la web:
this.appView.setWebViewClient(new CordovaWebViewClient(this){
@Override
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
Log.i("BugTest", "shouldOverrideUrlLoading: " + url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("TEST", "onPageFinished: " + url);
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload){
}
});
Pero ese código tampoco funciona, todavía tengo un ERROR DE TIEMPO. También vi que ya existe un miembro de webVieClient, pero no lo hago si tengo que usarlo y cómo.
Estoy trabajando con Phonegap versión 1.9.0
Gracias por leer
Respuesta a Simon:
Funcionó de esta manera, gracias!
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
super.appView.clearCache(true);
super.appView.clearHistory();
this.appView.setWebViewClient(new CustomCordovaWebViewClient(this));
super.loadUrl("file:///android_asset/www/index.html");
}
public class CustomCordovaWebViewClient extends CordovaWebViewClient {
public CustomCordovaWebViewClient(DroidGap ctx) {
super(ctx);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
super.onPageStarted(view, url, bitmap);
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.i("TEST", "onPageFinished: " + url);
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload){
super.doUpdateVisitedHistory(view, url, isReload);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
}
}