Italian Non far ricaricare il webview

Sberla

Active Member
Licensed User
Ho un webview che carica un link di un sito. Quando provo a girare il dispositivo, passando da verticale a orizzontale e/o viceversa, mi ricarica la home del sito.

Io invece vorrei che girando il dispositivo, resta nella stessa pagina.

Come posso fare?
 

LucaMs

Expert
Licensed User
Quando ruoti il dispositivo, viene ricreata l'Activity, per cui viene eseguita nuovamente Activity_Create. Se è in questa che carichi la home page, ovviamente la caricherà ad ogni "rotazione".

Quindi, dovresti farlo altrove (altra routine)
 

Sberla

Active Member
Licensed User
Vuoi dire in un altro evento?

Non posso fare che ogni volta che cambia url la salvo in una variabile e poi la setto se si ruota il dispositivo?
 

LucaMs

Expert
Licensed User
Vuoi dire in un altro evento?

Non posso fare che ogni volta che cambia url la salvo in una variabile e poi la setto se si ruota il dispositivo?
Si possono fare tante cose, dipende da come esattamente funziona l'app.

Nel caso tu volessi salvare una variabile, probabilmente il posto migliore è il servizio Starter.

Nella routine-evento Activity_Pause, puoi salvare la variabile in Starter.NomeTuaVariabile (avrai dichiarato pubblica NomeTuaVariabile nella Process_Globals dello Starter) e recuperarla nella Activity_Resume.
 

Sberla

Active Member
Licensed User
Nell'activity dell'app nel quale ho questo problema, ho inserito un webview con un sito. Ma mi sono accorto che navigando nel sito, se a un certo punto ruoto il dispositivo, riparte dal primo indirizzo assegnato al webview. Voglio che anche se gira il dispositivo resta nella pagina in cui si trova l'utente.

Devo usare il service starter?
 

LucaMs

Expert
Licensed User
Prova così:

B4X:
Sub Process_Globals
    Private mURL As String
End Sub

Sub Globals
    Private WebView1 As WebView
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layMain")
    If FirstTime Then
        mURL = "http://www.google.com"  ' <--- qui scrivi la home che ti interessa, ovviamente.
    End If
End Sub

Sub Activity_Resume
    WebView1.LoadUrl(mURL)
End Sub


Sub WebView1_OverrideUrl (URL As String) As Boolean
    mURL = URL
End Sub
 
Top