【问题标题】:How to prevent the reload of a webView in a fragment when another fragment in the top was closed当顶部的另一个片段关闭时,如何防止在片段中重新加载 webView
【发布时间】:2014-06-05 20:09:06
【问题描述】:

我正在制作一个带有 webviews 的应用程序。 我只有一个活动包含 用于动态添加片段的 FrameLayout。

每个片段都包含一个 webView。

一切正常,但是当我删除片段时 从堆栈中,片段的 webview 堆栈的顶部被重新加载,所以里面的内容 再次调用 html 的脚本。

restoreState() 方法不起作用。

这是片段的onCreateView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.wv_container, container, false);
    webView = (WebView)view.findViewById(R.id.webviewcontainer);
    if(webViewBundle == null)
        webView.loadUrl("file:///android_asset/www/main.html");
    else
        webView.restoreState(webViewBundle);
    return view;
}

这是 onPause() 方法:

@Override
public void onPause() {
    super.onPause();
    webViewBundle = new Bundle();
    webViewContent.saveState(webViewBundle);
}

我应该如何防止我的案例重新加载页面? 我不想用标志或类似的东西破解 html。

提前致谢!

【问题讨论】:

    标签: android android-fragments webview


    【解决方案1】:

    onPause 中的saveState 方法返回一个WebBackForwardList,其中包含WebHistory 项目的列表。这些基本上是最近访问过的页面的标题、网址和网站图标。它不会缓存下载的 url 的内容。

    尝试改用 saveWebArchive 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多