Italian Problema con webview e tasto indietro

Nestor71

Member
Licensed User
Salve,
sono nuovo con b4a ma ho già fatto qualche cosa con il linguaggio Visual Basic.
Ho creato una App semplice con solo una webview quando avvio l' app mostra un sito web fin qui tutto a posto però quando inizio a navigare il sito e poi premo il tasto indietro vorrei che mi riporti alla pagina precedente sapete se si può fare.
 

udg

Expert
Licensed User

iz0ndg

Member
Licensed User
Ciao, io in alcune prove ho usato questo:
B4X:
Sub Activity_KeyPress(KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK Then
        Log(WebView1.Url)
        If WebView1.Url = home Then
            Activity.Finish
        Else
            WebView1.Back
        End If
        Return True
    End If
    Return False
End Sub
Funziona 'quasi' sempre !!!
 

Nestor71

Member
Licensed User
Ciao, io in alcune prove ho usato questo:
B4X:
Sub Activity_KeyPress(KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK Then
        Log(WebView1.Url)
        If WebView1.Url = home Then
            Activity.Finish
        Else
            WebView1.Back
        End If
        Return True
    End If
    Return False
End Sub
Funziona 'quasi' sempre !!!
Grazie mille era quello che cercavo c' è un piccolo problema se si naviga nel sito poi si clicca sulla pagina home e poi sul tasto indietro l' Activity viene chiusa invece dovrebbe tornare indietro, se si può risolvere altrimenti va benissimo così
 

LucaMs

Expert
Licensed User
Credo che dovresti usare un tuo tasto (ma anche due, avanti e indietro) per navigare e sfruttare l'evento PageFinished della WebView per memorizzare gli indirizzi delle pagine visitate.

Il codice nell'Activity_KeyPress può essere usato per impedire di uscire dall'Activity (anche se normalmente si consentirà all'utente di farlo).
 

iz0ndg

Member
Licensed User
Grazie mille era quello che cercavo c' è un piccolo problema se si naviga nel sito poi si clicca sulla pagina home e poi sul tasto indietro l' Activity viene chiusa invece dovrebbe tornare indietro, se si può risolvere altrimenti va benissimo così
Usando un'altra libreria (WebViewExtras) che aggiunge molte altre funzioni interessanti, potreti cambiare il codice cosi:
B4X:
Sub Activity_KeyPress(KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK Then
        If WebViewExtras1.CanGoback Then
            WebView1.Back
        Else
            Activity.Finish
        End If
        Return True
    End If
    Return False
End Sub
 

LucaMs

Expert
Licensed User
Usando un'altra libreria (WebViewExtras) che aggiunge molte altre funzioni interessanti, potreti cambiare il codice cosi:
B4X:
Sub Activity_KeyPress(KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK Then
        If WebViewExtras1.CanGoback Then
            WebView1.Back
        Else
            Activity.Finish
        End If
        Return True
    End If
    Return False
End Sub

In effetti funziona (non so se l'ho implementato correttamente anche se pare di sì).
 

Attachments

Top