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

idS*_*tar 65 css uiwebview ios8 wkwebview

问题

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

上下文

我在我的原生iOS应用程序中使用Web视图,用于在iPad上显示信息内容的弹出窗口内容.很高兴能够将内容和设计人员提供给他们并说"只需放入一些HTML内容,引用链接的CSS文件".

所有这些在使用时都很有用UIWebView.

但是popovers通常非常紧凑.

我经历了什么

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

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

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

UIWebView有什么不对?

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

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

这是UIWebView很好地呈现的原始CSS,但是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;
}
Run Code Online (Sandbox Code Playgroud)

小智 148

我有同样的问题.我只是放了

<meta name="viewport" content="initial-scale=1.0" />
Run Code Online (Sandbox Code Playgroud)

进入我的标题栏,这解决了我.看起来像WKWebViewMobile Safari的行为更像是一个UIWebView,所以如果你想控制缩放或一般大小调整,你需要设置视口.

  • 你救了我的命,我完全沮丧为什么它弄乱了我的CSS,但是你救了我.你是我的天使! (5认同)
  • 谁不喜欢一线解决方案?谢谢!! (2认同)
  • 有效代码:&lt;meta name=\"viewport\" content=\"initial-scale=1.0\" /&gt; (2认同)
  • 确切地!它只是在你的 HTML 代码前面加上它的前缀:`stringHTML = "&lt;meta name=\"viewport\" content=\"initial-scale=1.0\" /&gt;" + stringHTML` (2认同)
  • 会出现什么问题 -&gt; 如果有一次字体没问题,并且当用户尝试加载相同的 html 模板但使用另一个 &lt;body&gt; 内容时,字体大小会发生变化吗?&lt;meta name='viewport' content='initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, width=400'&gt; (2认同)