gpt4 book ai didi

ios - 用于 webView 的 scalesPageToFit 不适用于 iOS 9.3

转载 作者:行者123 更新时间:2023-12-01 18:45:26 25 4
gpt4 key购买 nike

我在 Storyboard 中有 UIWebview,我正在 View 中加载 HTML 页面。
在 iOS 9.2 之前,它的运行效果很好,但是当我在 iOS 9.3 中运行相同时,默认情况下页面会放大显示。
我设置了 scalesPageToFit 属性。

self.webView.scalesPageToFit=TRUE;

我也尝试过以编程方式为 UIWebview 设置框架。

这是我的 HTML 元标记。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.2, user-scalable=yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">

我尝试过使用元标记
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">

正如我尝试过的许多帖子中所建议的那样。
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)self.view.frame.size.width]];

最佳答案

我遇到了同样的问题,解决方案是使用下面的代码

    webview.scalesPageToFit = YES;
float width = webview.frame.size.width;
float scale = width/770;

NSString *js = [NSString stringWithFormat:@"document.body.style.zoom=%.2f;",scale];
[webview stringByEvaluatingJavaScriptFromString:js];

我知道这是 hacky 解决方法。数字 770 是宽度(点)和比例之间的比率,我需要将网页内容放入 webview 中。

更新

我发现上述解决方案有时会导致无法正确缩放特定 html 标记中的字母,这就是我使用 javascript 的原因,它直接更改带有名称 viewport 的元标记(代码如下)
NSString *js = [NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content','width=device-width; initial-scale=%.2f; user-scalable=no;');",scale];

关于ios - 用于 webView 的 scalesPageToFit 不适用于 iOS 9.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36426007/

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