Sto usando WebViewClient. Dovremmo vedere i callback suPageStarted() sempre associati a un callback shouldOverrideUrlLoading()? Se carico example.com nella mia WebView, dovremmo vedere entrambi i metodi richiamati? Dalla documentazione:WebViewClient - onPageStarted() vs shouldOverrideUrlLoading()?
onPageStarted()
notificare l'applicazione host che una pagina è iniziato il caricamento. Questo metodo viene chiamato una volta per ogni frame principale, quindi una pagina con iframe o frameset chiamerà onPageStarted una volta per il frame principale. Ciò significa anche che onPageStarted non verrà chiamato quando i contenuti di un frame incorporato cambiano, ovvero facendo clic su un collegamento il cui target è un iframe.
shouldOverrideUrlLoading()
Dare l'applicazione host la possibilità di prendere il controllo quando un nuovo URL sta per essere caricata nella WebView corrente. Se WebViewClient non viene fornito, per impostazione predefinita WebView chiederà a Activity Manager di scegliere il gestore appropriato per l'url. Se viene fornito WebViewClient, return true significa che l'applicazione host gestisce l'url, mentre return false indica che l'attuale WebView gestisce l'url.
Inserisco un'istruzione di registro in ciascun metodo e vedo che non sono sempre associati insieme. In quali casi non sarebbero?
Grazie
http://developer.android.com/reference/android/webkit/WebViewClient.html
Se si restituisce true su 'shouldOverrideUrlLoading()' allora 'onPageStarted()' non verrà richiamato. Oltre a ciò, potrebbe essere possibile che 'onPageStart' a volte non venga chiamato se ci sono due richieste back to back, quindi potenzialmente impedisce ad una di esse di passare attraverso. Non sono così sicuro di quest'ultimo, però. – Jakar
Secondo i registri che ho ottenuto nella mia applicazione, 'shouldOverrideUrlLoading' e' onPageStarted' possono essere chiamati in qualsiasi ordine, il che è molto confuso. Non ho ancora scoperto in quali circostanze ciò avvenga. – Stan