【问题标题】:Android webview keep previous page content without reload?Android webview保留前一页内容而不重新加载?
【发布时间】:2016-08-24 21:54:16
【问题描述】:

webview 好像只保留前一页的 url 和滚动位置,不保留内容?我有一个带有 json 数据的主页和一个子页面。主页面生成一些 json 数据的超链接以在新窗口中打开子页面。在笔记本电脑浏览器中,我只需要在新窗口中关闭子页面。但是在webview中,当我按下返回按钮时,它可以返回主页,但它会重新加载并且不会保留以前的内容。如何让 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;
    }
}

谢谢~

【问题讨论】:

    标签: android webview xamarin.android


    【解决方案1】:

    要记住的一点是,WebView 不是完整的 Internet 浏览器。它是专门为加载网页内容而设计的视图。如果您有一个 WebView 并且正在切换内容(包括返回),则每次都必须重新加载内容。

    研究使用嵌入了 WebView 的不同片段。这样,当您加载内容时,它应该保持加载(或缓存)状态。然后您可以在 WebView 片段之间执行所有导航。

    您还可以在一个 Activity 中拥有多个 WebView,并将可见性标志设置为 GONE 或 VISIBLE,具体取决于屏幕上应显示的内容。

    【讨论】:

    • 可惜了。我会做一些替代方案,谢谢~~
    • @Renkuei,你采用了什么方法?
    • @ToolFan 抱歉回复晚了。看来我使用另一个 webview 来达到目的。
    【解决方案2】:

    我遇到了同样的问题。我通过在新活动中打开新的 webview 来修复。根据需要,新的 webview 可以是:

    • 在同一活动的新实例中打开。确保 --> android:launchMode="标准"
    • 在不同活动的新实例中打开。

    【讨论】:

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