So che ci sono più domande a riguardo ma sembrano tutte vecchie e non funzionano più - almeno per me. Sto cercando di salvare la posizione di una visualizzazione Web dopo che un utente ha terminato o ricaricato l'app. So che questo codice potrebbe essere utilizzato per salvare e caricare la Webview:Salvare lo stato di una WebView e ricaricare la posizione
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
myWebview.saveState(outState);
}
e in onCreate
:
if (savedInstanceState != null) {
myWebview.restoreState(savedInstanceState);
}
Ma, nella pagina Developer Webview Android che dice quanto segue riguardo saveState
:
"Salva lo stato di questo WebView utilizzato in onSaveInstanceState (Bundle) .Si prega di notare che questo metodo non memorizza più i dati di visualizzazione per questo WebView. Il comportamento precedente potrebbe potenzialmente perdere file se restoreState (Bundle) non è mai stato chiamato."
link - https://developer.android.com/reference/android/webkit/WebView.html
Se mi sbaglio e questo dovrebbe funzionare, potrebbe essere mia implementazione di un'altra funzione che salva la selezione filatore della pagina mostrata nella WebView e viene caricato in modo molto simile modo mostrato sopra. Forse l'utilizzo di entrambi non consente di caricare la posizione di WebView e solo la pagina? Ecco cosa ho attualmente per salvare quale pagina HTML viene caricata in WebView quando l'utente ricarica l'app.
mio onCreate
:
if (savedInstanceState != null){
mySpinner.setSelection(prefs.getInt("spinnerSelection", 0));
}
mia onSaveInstanceState
:
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getBaseContext());
SharedPreferences.Editor editor = getPrefs.edit();
values = Integer.parseInt(getPrefs.getString("pref_Sections", "1"));
switch (values) {
case 1:
int selectedPosition1 = mySpinner.getSelectedItemPosition();
editor.putInt("spinnerSelection1", selectedPosition1);
editor.commit();
break;
case 2:
int selectedPosition2 = mySpinner.getSelectedItemPosition();
editor.putInt("spinnerSelection2", selectedPosition2);
editor.commit();
break;
}
super.onSaveInstanceState(savedInstanceState);
}
Qualcuno ha tutte le risposte su questo tema, o è solo non funziona più come descritto in Android Developer WebView? Stavo considerando una soluzione matematica, ma al momento è fuori dalla mia esperienza e dovrei imparare di più su questo (in più non mi piace la matematica in generale!)
Grazie a tutte le risposte!
Qual è la posizione della Webview? È la stessa cosa che url # posiziona sul browser? – inmyth
Quanto in basso nella pagina web l'utente ha letto il contenuto. Voglio che quella posizione sia salvata e ricaricata quando l'utente torna all'applicazione. – user1363871
sei in grado di modificare il lato HTML/Javascript di questo, o puoi modificare solo sul lato client/Webview? – EpicPandaForce