2012-06-03 11 views
9

Sto caricando una "pagina web1" su una uiwebview e salvando la sua prima richiesta su una variabile di istanza "webviewHistory". Quindi, devo riutilizzare quella webview per caricare un'altra pagina, "webpage2" (ha salvato la sua prima richiesta a "webviewHistory"), e la cronologia dovrebbe iniziare ora da questa richiesta. Il problema è che se eseguo goBack (pulsante IBAction) da "webpage2", posso continuare a tornare alla cronologia "pagina web1" e seguenti. Se controllo la richiesta e la confronto con il salvataggio iniziale, funziona! ma non con i reindirizzamenti, ad esempio, se richiamo la richiesta su www.youtube.com, la richiesta viene reindirizzata a m.youtube.com e la prima non viene salvata come cronologia di navigazione! come risolverlo?Controllo della cronologia goBack di uiwebview per iOS

if (![webViewSocial.request.URL.absoluteString isEqualToString:self.webviewHistory]){ 
    [webViewSocial goBack]; 
    } 

risposta

30

UIWebviews dispone di metodi di istanza che consentono di andare avanti e indietro con la cronologia, senza dover monitorare l'ultima richiesta. C'è una ragione particolare per cui stai salvando l'ultima richiesta in modo specifico?

codice di esempio:

if ([webView canGoBack]) { 
    [webView goBack]; 
} 

Ecco un progetto che è un semplice browser UIWebView se si vuole giocare con lui: https://github.com/msencenb/UIWebView-Example

+0

Sto già usando questo metodo, ma ho bisogno di abilitare o disabilitare l'azione goBack a seconda se la richiesta è più vecchia della prima pagina caricata! – Jaume

+0

Ok. Penso che dovresti aspettare che il reindirizzamento avvenga sulla prima pagina (in modo da ottenere la prima pagina corretta caricata) usando il metodo delegato di uiwebview: webViewDidFinishLoad: quindi salva nella variabile di istanza. – Msencenb

-1

una rapida 3 versione di Msencenb risposta:

if webView.canGoBack { 
    webView.goBack() 
} 
Problemi correlati