gpt4 book ai didi

java - 缩小 WebView 初始比例

转载 作者:行者123 更新时间:2023-12-04 08:10:06 24 4
gpt4 key购买 nike

我想缩小我的 WebView 初始比例,如以下视口(viewport)配置:

<meta name="viewport" content="width=device-width, initial-scale=0.93, maximum-scale=0.93, user-scalable=no" />

但是这个视口(viewport)被 WebView 忽略并呈现为全尺寸,这是我的 WebView 设置但没有成功:

    mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.setInitialScale(93);

有什么想法可以实现吗?

最佳答案

当您使用 user-scalable=no 时,缩放功能将被禁用。如果您无权从网页源更改此设置,唯一可能的解决方案是在页面加载完成后使用 Javascript 更改视口(viewport)内容属性。为此,您必须设置 setJavaScriptEnabled(true);

webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//Option 1: change the viewport content after the page is finished loaded and set initial-scale=0.93 and user-scalable=yes
view.loadUrl("javascript:document.getElementsByName('viewport')[0].setAttribute('content', 'width=device-width, initial-scale=0.93, maximum-scale=0.93, user-scalable=yes');");

//Option 2: change the body zoom style to the initial value you want eg: 0.93 (93%)
//view.loadUrl("javascript:document.body.style.zoom = "+String.valueOf(0.93)+";");
}
});
//load the url
webView.loadUrl(url);

关于java - 缩小 WebView 初始比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66018567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com