2016-04-29 48 views
1

該webview似乎只保留上一頁的網址和滾動位置,不保留內容?我有一個帶有json數據的主頁面和一個子頁面。主頁面生成一些json數據的超鏈接在新窗口中打開子頁面。在筆記本瀏覽器中,我只需要在新窗口中關閉子頁面。但在webview中,當我按下後退按鈕時,它可以返回主頁面,但它會重新加載並且不保留以前的內容。我如何使webview無需重新加載就返回?Android的webview保持前一頁的內容不重新加載?

main.html with dynamic content 
<a href='child.html' target=target="_blank"...... 
press back button, success go back, but the main page reload and lost dynamic content 

我的代碼波紋管:

webView.Settings.JavaScriptEnabled = true; 
webView.Settings.DomStorageEnabled = true; 
webView.Settings.DatabaseEnabled=true; 
webView.Settings.DatabasePath = AppConfig.Path; 

webView.SetWebViewClient(new HybridWebViewClient()); 


public override void OnBackPressed() 
{ 
    if (webView != null && webView.CanGoBack()) 
    { 
     webView.GoBack(); 
     GoBackFlag = true; 
    } 
    else { 
     base.OnBackPressed(); 
    } 
} 

public override bool ShouldOverrideUrlLoading(WebView view, string url) 
{ 
    if (GoBackFlag) 
    { 
     GoBackFlag = true; 
     return false; 
    } 
    else { 
     view.LoadUrl(url); 
    } 
    return true; 
} 

public override void OnPageStarted(WebView view, string url, Bitmap favicon) 
{ 
    if (GoBackFlag) 
    { 
     GoBackFlag = false; 
     return; 
    } 
} 

謝謝〜

回答

2

有一點要記住的是,網頁視圖是不是一個完整的互聯網瀏覽器。這是一個專門用於加載網頁內容的視圖。如果您有單個WebView並正在切換內容(包括返回),則每次都必須重新加載內容。

查看嵌入在其中的WebView使用不同的片段。這樣,當你加載它應該保持加載(或緩存)的內容。然後,您可以在WebView片段之間執行所有導航。

您也可以在一個Activity中擁有多個WebView,並將可見性標誌設置爲GONE或VISIBLE,具體取決於屏幕上應顯示的內容。

+0

很遺憾。我會做一些替代計劃,謝謝~~ – Renkuei