在WebView中保持缩放级别

时间:2012-09-25 22:34:21

标签: android webview

  

可能重复:
  WebView: how to preserve the user's zoom settings across sessions?

我正在开发一个简单的Android应用程序,它在我的WebView中加载一个初始URL,然后用户可以自由放大/缩小并导航。

当用户点击链接时,“缩放级别”将丢失(或重置),用户必须再次放大/缩小!这是令人沮丧的用户!我找不到如何保存/保存当前缩放。 (我尝试过使用onScaleChanged事件,但似乎只有在用户点击后才会生成)

我在onPageFinished中解决了使用问题:

@Override
public void onPageFinished(WebView webView, String url) {
webView.loadUrl("javascript:(function() { " +  
"document.getElementsByTagName('body')[0].style.zoom='" + yourzoomvariable + "'; })()");
}

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你对你正在展示的HTML有权力吗?您也可以在标题内部使用元标记调整缩放和缩放:

例如:

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5,  maximum-scale=2.0">

编辑:

你也可以在每个加载完成后注入metatag,如下面的代码,用于将背景颜色更改为渐变。

public void onPageFinished(WebView view, String url) {



            //styling



            webview.loadUrl("javascript:(function() { " +  
                    "document.getElementsByTagName('body')[0].style.background = '-webkit-gradient(linear, 0% 0%, 0% 100%, from(#143b8a), to(#266af3))'; " + 
                    "})()");  



        }

此外,您可以使用缩放和缩小值,如此处所述How to zoom in/out the content of a WebView programmatically?然后您可以保存状态,用户只需要调整它。