【问题标题】:Webview is showing content from other Webview (multiple webviews in the same app)Webview 正在显示来自其他 Webview 的内容(同一应用程序中的多个 Webview)
【发布时间】:2015-09-22 12:11:00
【问题描述】:

我有两个 webview,加载不同的内容。有时,一个 webview 显示来自另一个 webview 的内容。这很奇怪,我不明白为什么。

我查看了官方文档,没有发现在同一个应用程序上有不同的 webviews 加载不同的内容有任何问题。

http://developer.android.com/reference/android/webkit/WebView.html

http://developer.android.com/reference/android/webkit/WebSettings.html

http://developer.android.com/reference/android/webkit/WebStorage.html

在同一应用程序中管理不同的 webview 时,我们是否应该做一些特别的事情?

谢谢

【问题讨论】:

    标签: android webview android-webview


    【解决方案1】:

    也许您需要在加载新 URL 之前清除 Webview 数据/内容。 有一种方法称为clearView();,但在 API 级别 18+ 中已弃用,因此您需要检查 API 版本并应用以下适当的解决方案。

    检查此代码。

    if (Build.VERSION.SDK_INT < 18) {
       webView.clearView();
    } else {
       webView.loadUrl("about:blank");
    }
    

    希望这对您有所帮助。 谢谢。

    【讨论】:

      【解决方案2】:

      我尝试了很多选项,但只有在我遵循以下操作时才可以使用:

      首先,当您重新加载整个 web 视图(或者如果您的布局中有一部分)时,在设置内容之前,将可见性设置为 GONE。

      mWebView.setVisibility(View.GONE);
      

      然后,设置内容:

      mWebView.loadDataWithBaseURL(//My URL);
      

      然后,再次将可见性设置为 VISIBLE:

      mWebView.setVisibility(View.VISIBLE);
      

      有时,在早期版本的 Android 中,webview 会加载很大的内容。然后,当您加载不是那么大的新内容时,webview 不会将自己拉伸到新内容,并且页面始终保持已放置的大尺寸。 这个策略在这里工作得很好,解决了这两个问题(你的和最后一个)。

      【讨论】:

        【解决方案3】:

        不,你不需要做一些特殊的事情来管理同一个 App 中的不同 Webview,即使在同一个 Activity 布局中也是如此。 请记住,就像documentation,每个应用程序的多个 Webview 共享同一个缓存。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-14
          • 1970-01-01
          • 2023-02-10
          • 2015-04-04
          • 1970-01-01
          • 2019-07-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多