2012-10-08 17 views
5

Proszę mi pomóc to pytanie. Pracuję z podglądem strony. I stanąłem przed dwoma problemami:WebView: WebViewClient.onPageStarted metoda nie nazywa się

  1. Kiedy przeglądarka ładuje nową stronę. Metoda onPageStarted nie jest wywoływana, ale wywoływana jest metoda onPageFinished.
  2. Metoda: mWebView.canGoBack() zawsze zwraca wartość false.

Jeśli wiesz, dlaczego lub masz jakieś sugestie, pomóż mi. Uwaga: Pracuję z: Jquery Mobile po stronie serwera (strona internetowa).

To są mój klient Webview i kod źródłowy skryptu Webview.

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; 
    } 

} 

To mój WebView startowych:

  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); 

Odpowiedz

1

wierzę onPageStarted nazywa się tylko wtedy, gdy nowy strona jest ładowana. E.g.g jesteś na stronie index.html i przejdź do contact.html

Większość szkieletów mobilnych (takich jak jquery mobile, ionic, angualar) pozostanie na stronie index.html i tylko zmodyfikuje zawartość. Stąd onPageStarted nie nazywa, ale onPageFinished jest

0

index.html # xxxxxxx index.html # aaaaaa

są traktowane tak samo przez WebView, w tym przypadku, onPageStarted wont'be nazywa

+0

Dodaj wyjaśnień w odpowiedzi na odpowiedź, jak to help OP ustalając aktualny problem –

+0

Tylko webview wywołuje onPageStarted podczas ładowania nowej strony –

-1

Zaktualizuj widok internetowy i sprawdź.

I wobec tego problemu, gdy aktualna wersja WebView jest 60.0.3112.107 natomiast wersja w telefonie był 57.x.xxxx.xxx

Powiązane problemy