1

可能重复:
WebView:如何跨会话保留用户的缩放设置?

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

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

我已经使用 onPageFinished 解决了:

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

非常感谢你的帮助!

4

1 回答 1

0

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

例如:

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

编辑:

您还可以在每次加载完成时注入该元标记,如下面的代码,用于将背景颜色更改为渐变。

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))'; " + 
                    "})()");  



        }

您也可以使用此处解释的 zoomin 和 zoomout 值如何以编程方式放大/缩小 WebView 的内容? 然后你可以在那里保存状态,用户只需要调整它。

于 2012-09-26T01:41:29.110 回答