2012-10-08 39 views
5

Por favor, ayúdame a esta pregunta. Estoy trabajando con webview. Y me enfrenté a dos problemas:WebView: WebViewClient.onPageStarted método no se llama

  1. Cuando la vista web carga la página nueva. El método onPageStarted no se llama pero se llama al método onPageFinished.
  2. El método: mWebView.canGoBack() siempre devuelve falso.

Si sabes por qué o tienes alguna sugerencia, por favor, ayúdame. Nota: estoy trabajando con: jQuery Mobile en el lado del servidor (lado de la web).

Esos son mi cliente Webview y el código fuente Webview init.

private class MyWebViewClient extends WebViewClient{ 

    private static final String TAG = "MyWebViewClient"; 


    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     Log.v(TAG, "onPageFinished url: " + url); 

    } 

    @Override 
    public void onLoadResource(WebView view, String url){ 
     Log.v(TAG, "onLoadResource url: " + url); 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     super.onPageStarted(view, url, favicon); 
     Log.v(TAG, "onPageStarted url: " + url); 

    } 

    @Override 
    public void onReceivedError(WebView view, int errorCode, 
      String description, String failingUrl) { 
     super.onReceivedError(view, errorCode, description, failingUrl); 
     Log.v(TAG, "onReceivedError url: " + failingUrl); 

    } 


    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     Log.v(TAG, "shouldOverrideUrlLoading : " + url); 

     return false; 
    } 

} 

Ésta es mi vista web init:

  mWebView = new WebView(getActivity()); 
     mWebView.setWebViewClient(new MyWebViewClient()); 
     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 

     String link = getArguments().getString(PARAMETER_LINK); 
     boolean deleteWVData = getArguments().getBoolean(PARAMETER_DELETE_DATA); 
     if(deleteWVData) 
      mWebView.clearCache(true); 

Respuesta

1

creo onPageStarted sólo se invoca cuando se carga una nueva página . Por ejemplo, usted está en index.html y navegue hasta contact.html

La mayoría de los marcos móviles (como, jquery mobile, ionic, angualar) permanecerán en la página index.html y solo modificarán el contenido. Por lo tanto, onPageStarted no se llama, pero es onPageFinished

0

index.html # xxxxxxx index.html # aaaaaa

se consideran la misma por la vista web, en este caso, onPageStarted wont'be llamados

+0

Añadir una explicación con la respuesta de cómo esta respuesta ayuda OP en la fijación de edición actual –

+0

webview solo llama a PagesIniciado al cargar una nueva página –

-1

Actualice la vista web y verifique.

que se enfrentaron a este problema cuando la versión actual de vista web es 60.0.3112.107 mientras que la versión en el teléfono era 57.x.xxxx.xxx

Cuestiones relacionadas