【问题标题】:Suppress WKWebView from scaling content to render at same magnification as UIWebView does禁止 WKWebView 缩放内容以与 UIWebView 相同的放大倍数进行渲染
【发布时间】:2014-11-24 00:33:59
【问题描述】:

问题

使用WKWebView 代替UIWebView,我注意到WKWebView 的内容与我的UIWebView 相比大大缩小了。我希望 WKWebView 停止这样做,并像 UIWebView 那样尊重我的 CSS 值。

上下文

我在我的原生 iOS 应用程序中使用 Web 视图来查看 iPad 上弹出框内的内容,我在其中显示信息内容。能够将其提供给内容和设计人员并说“只需放入一些 HTML 内容,引用链接的 CSS 文件”,这真是太好了。

在使用 UIWebView 时,所有这些都非常有效。

但弹出框通常非常紧凑。

我正在经历什么

在我的狭窄弹出窗口中,内容被缩小,就好像我的内容被缩小到整个网页以适应。我可以看到 WKWebView 主要是为那些在 iOS 上构建备用浏览器或构建混合应用程序的人设计的,WKWebView 本质上就是接管屏幕。

WKWebView 中的放大倍数不是可以设置的。当然,用户可以放大,但这违背了目的。我不是在寻找放大的视口;我正在寻找适合 UIWebView 的整个内容并进行自动换行。

使用 WKWebView,在模拟器中,如果我将正文文本大小增加到 50 像素而不是 14 像素,我会看到我想要的大小。然而,这段代码在设备上甚至都没有帮助,所以增加我的 CSS 大小也不是一种选择!

UIWebView 出了什么问题?

嗯,真的没什么。它在 iOS8 中(还)没有被弃用,也许 b/c 它仍然有用,正如我所经历的那样。然而,我确实注意到 WKWebView 很快。我已经看到一些猜测,即 UIWebView 的写作即将到来。我想:“为什么不现在在 iOS8 中采用更现代的 API?”

所以,我现在继续使用 UIWebView,但如果我可以让它尊重我的 CSS 大小,我想切换到 WKWebView。

这是我的原始 CSS,UIWebView 可以很好地呈现,但弹出窗口中的 WKWebView 会以非常小的字体呈现:

body {
    font-family: "HelveticaNeue";
    font-size: 15px;
    line-height: 17px;
    color: #000000;
}

h1 {
    font-family: "HelveticaNeue-Bold";
    font-size: 18px;
    line-height: 20px;
    color: #000000;
}


h2 {
    font-family: "HelveticaNeue-Bold";
    font-size: 16px;
    line-height: 18px;
    color: #000000;
}

【问题讨论】:

    标签: css uiwebview ios8 wkwebview


    【解决方案1】:

    我遇到了同样的问题。我只需要放

    <meta name="viewport" content="initial-scale=1.0" />
    

    进入我的标题块并为我解决了它。看起来 WKWebView 的行为更像 Mobile Safari 而不是 UIWebView,因此如果您想控制缩放或一般大小,则需要设置视口。

    【讨论】:

    • 你救了我的命,我很沮丧为什么它搞砸了我的 CSS,但你救了我。你是我的天使!
    • 谁不喜欢单行解决方案?谢谢!!
    • 有效代码:
    • 没错!它只是在你的 HTML 代码前面加上它:stringHTML = "&lt;meta name=\"viewport\" content=\"initial-scale=1.0\" /&gt;" + stringHTML
    • 什么会出错 -> 如果有一次字体没问题,当用户尝试加载相同的 html 模板但使用另一个 内容时,字体大小会改变?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多