通过缩放内容来抑制WKWebView,以与UIWebView相同的放大率进行渲染

时间:2014-09-29 14:59:49

标签: css uiwebview ios8 wkwebview

问题

使用WKWebView代替UIWebView,我注意到与WKWebView相比,UIWebView的内容大幅缩小。我希望WKWebView停止这样做,并按字面意思尊重我的CSS值,UIWebView的方式。

上下文

我在我的原生iOS应用程序中使用Web视图来查看iPad上的popovers内容,其中我显示了信息内容。很高兴能够将内容和设计人员提供给他们,然后说,只需输入一些HTML内容,引用链接的CSS文件"。

使用UIWebView时,所有这些都很有效。

但是弹出窗口通常很紧凑。

我的体验

在我狭隘的popovers中,内容按比例缩小,就好像我的内容整个网页被小型化以适应。我可以看到WKWebView主要用于在iOS上构建备用浏览器或构建混合应用程序的人,其中WKWebView基本上是在屏幕上。

WKWebView中的放大系数不是可以设置的。当然,用户可以放大,但这会失败。我不是在寻找放大的视口;我正在寻找整个内容以适应和自动换行,就像使用UIWebView一样。

使用WKWebView,在模拟器中,如果我将正文文本大小提升到50px而不是14px,我会看到我想要的大小。但是,此代码在设备上时甚至没有帮助,因此也不能选择夸大我的CSS大小!

UIWebView出了什么问题?

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

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

这是我的原始CSS,UIWebView很好地呈现,但是popover中的哪个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;
}

1 个答案:

答案 0 :(得分:138)

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

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

进入我的标题栏并为我解决了这个问题。看起来WKWebView的行为更像是移动Safari而不是UIWebView,因此如果要控制缩放或一般大小调整,则需要设置视口。