将Android的WebView显示从桌面模式更改回移动模式

时间:2016-04-11 15:52:48

标签: android android-webview

我正在开发一种应该允许在移动和桌面模式之间切换的浏览器。 通过以下代码更改为桌面模式时:

    mWebView.getSettings().setUserAgentString("\"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31");
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.reload();

一切都很好。但是,当尝试通过以下代码更改回移动模式时:

  mWebView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31");
  mWebView.getSettings().setBuiltInZoomControls(false);
  mWebView.reload();

页面已重新加载,但仍以桌面模式显示。 值得注意的是,在YouTube上测试时,触发第二个代码段后,如果我手动将“https://m.youtube.com”插入地址栏,我就能返回移动模式(在桌面模式下无法实现这一点)在触发第二个代码段之前)。因此,似乎重置UserAgent虽然没有提供所需的结果,但毕竟并不值得。

因此,假设以编程方式将域名前缀从“www”更改为“m”是一个有点hacky的解决方案,如何自动恢复移动模式?

修改

至于清除WebView的cookie - 它解决了这个问题,但似乎虽然清除所有cookie是微不足道的,但在尝试仅清除属于特定域的cookie时并非如此。在我的情况下,清除一切都不是一个选择。

0 个答案:

没有答案