Ho un WebViewClient
attaccato al mio WebView
in questo modo:Android - come intercettare una forma POST in WebViewClient Android sul livello di API 4
webView.setWebViewClient(new MyWebViewClient());
Qui è la mia realizzazione di MyWebViewClient
:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webView.loadUrl(url);
return true;
}
}
Fornisco a WebView
un URL da caricare tramite loadUrl()
. Se ho un collegamento (a href...
) nella pagina, il mio metodo shouldOverrideUrlLoading
viene chiamato e posso intercettare il clic del collegamento.
Tuttavia, se si dispone di un modulo il cui metodo è POST
, il metodo shouldOverrideUrlLoading
non viene chiamato.
Ho notato un problema simile qui: http://code.google.com/p/android/issues/detail?id=9122 che sembra suggerire di ignorare postUrl
nel mio WebView
. Tuttavia, questa API è disponibile solo a partire dal livello API 5.
Cosa posso fare se sono al livello API 4? C'è un altro modo per intercettare i messaggi di forma?
È possibile provare a eseguire l'override del callbackPageStarted in WebViewClient. – bhups
Grazie. L'ho provato e funziona, ma il problema è che non voglio caricare la pagina del modulo: è un URL falso, quindi alla fine ottengo la pagina di errore della pagina web. Ho lavorato a questo problema collegando onPageStarted se l'URL corrisponde all'URL del mio modulo e, in tal caso, gestirlo nella mia app e poi dire a webViewClient di tornare indietro. Suona ragionevole? – manisha
Hai trovato una soluzione a questo? – Sohaib