我知道有關於這個問題多,但他們似乎都老不再工作 - 至少對我來說。我試圖在用戶退出或重新加載應用程序後保存webview的位置。我知道,這個代碼可以用來保存和加載網頁視圖:保存的WebView的狀態,並重新加載位置
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
myWebview.saveState(outState);
}
和onCreate
:
if (savedInstanceState != null) {
myWebview.restoreState(savedInstanceState);
}
但是,在Android開發人員網頁視圖頁面,它說以下有關saveState
:
「保存此的WebView的onSaveInstanceState中(包)使用的狀態。請注意,這種方法不再存儲的顯示數據的WebView這個。原來的行爲可能泄漏的文件,如果restoreState(捆綁)從未被調用。」
鏈接 - https://developer.android.com/reference/android/webkit/WebView.html
如果我錯了,這應該是工作,也可能是我的實現,保存在WebView中所示的頁面中噴絲選擇和一個非常類似的加載另一個功能上面顯示的方式。也許使用兩者都不允許WebView的位置被加載,只有頁面?這是我目前保存哪些HTML頁面加載到WebView時,用戶重新加載應用程序。
我onCreate
:
if (savedInstanceState != null){
mySpinner.setSelection(prefs.getInt("spinnerSelection", 0));
}
我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);
}
有沒有人有任何關於此問題的反饋,或在Android開發者的WebView描述它只是不工作了?我正在考慮一個數學解決方法,但目前這是關於我的專業知識,我不得不更多地瞭解(加上我不喜歡數學一般!)
感謝所有回覆!
什麼是網頁視圖的位置?和瀏覽器上的url#位置一樣嗎? – inmyth
用戶閱讀內容的網頁有多遠。我希望在用戶回到應用程序時保存並重新加載該位置。 – user1363871
你能夠修改HTML /的這個JavaScript端,或者你可以在客戶端/網頁視圖方只修改? – EpicPandaForce