2015-04-18 105 views
10

我知道有關於這個問題多,但他們似乎都老不再工作 - 至少對我來說。我試圖在用戶退出或重新加載應用程序後保存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描述它只是不工作了?我正在考慮一個數學解決方法,但目前這是關於我的專業知識,我不得不更多地瞭解(加上我不喜歡數學一般!)

感謝所有回覆!

+0

什麼是網頁視圖的位置?和瀏覽器上的url#位置一樣嗎? – inmyth

+0

用戶閱讀內容的網頁有多遠。我希望在用戶回到應用程序時保存並重新加載該位置。 – user1363871

+0

你能夠修改HTML /的這個JavaScript端,或者你可以在客戶端/網頁視圖方只修改? – EpicPandaForce

回答

6

您可以使用getScrollY()得到您的WebView的垂直位置。將它保存在onSaveInstanceState

然後,使用scrollTo(x, y)恢復位置:

yourWebview.scrollTo(0, savedYPosition); 
+0

什麼樣的崩潰? – ToYonos

+0

沒有崩潰,很好用!謝謝您的幫助! – user1363871