可能重复:
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 + "'; })()");
}
非常感谢您的帮助!
答案 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?然后您可以保存状态,用户只需要调整它。