美文网首页程序员
iOS 9.0 WKWebView自适应缩放问题解决方案

iOS 9.0 WKWebView自适应缩放问题解决方案

作者: frog78 | 来源:发表于2018-08-03 00:28 被阅读0次

    都说WKWebView性能很好,然而WKWebView上的坑也不少,特别是在低版本系统中。最近在开发中就遇到了页面缩放问题。
    写了一个简单的H5页面,代码如下:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
            <link rel="stylesheet" type="text/css" href="../css/common.css"/>
        </head>
        <body>
            <header>
                <a class="back" href="javascript:;"></a>
                <h1>get information (获得应用和设备信息)</h1>
            </header>
            <div class="content-card">
                <p>● 点击下方按钮获得应用和设备信息</p>
                <a class="button button-blue" id="appInfo">应用信息</a>
                <div class="appInfo">   
                </div>
                <a class="button button-blue" id="deviceInfo">设备信息</a>
                <div class="deviceInfo">
                </div>
            </div>
        </body>
    </html>
    

    用WKWebView加载该H5页面,点击应用信息或者设备信息按钮时,在下方的div中显示获取到的相关信息。可以看到,显示的信息字符的长度超过了屏幕宽度,但是可以通过滚动滚动条来查看。这是正常的。如图所示:

    正常情况下H5页面显示

    但是在iOS9.0上,就出现问题了。页面为了显示所有字符内容,把整个页面缩小了。貌似这是浏览器的行为,但是这样非常难看。如下图所示:

    自动缩放情况下H5页面显示

    这样确实很难看。那么有没有办法让页面不缩放呢?
    刚开始的时候,觉得这个肯定是浏览器的行为,所以把WKWebView的属性以及代理方法研究了一遍,各种设置,如禁止UIScrollView缩放等试了个遍,都不能解决这个问题。后来才意识到,可以在H5上面下点功夫。其实在H5上做一点小改动,就能解决问题,下面分享一下这个解决方案。代码如下:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
            <link rel="stylesheet" type="text/css" href="../css/common.css"/>
        </head>
        <body>
            <header>
                <a class="back" href="javascript:;"></a>
                <h1>get information (获得应用和设备信息)</h1>
            </header>
            <div class="content">
                <div class="content-card">
                    <p>● 点击下方按钮获得应用和设备信息</p>
                    <a class="button button-blue" id="appInfo">应用信息</a>
                    <div class="appInfo">   
                    </div>
                    <a class="button button-blue" id="deviceInfo">设备信息</a>
                    <div class="deviceInfo">
                    </div>
                </div>
             </div>
        </body>
    </html>
    

    没错就是在Html5中所有显示内容的外面套一层<div></div>标签就可以了。
    添加<div></div>标签后在iOS 9.0 WKWebView上显示内容如下所示,显示正常了。

    修改后H5页面显示

    相关文章

      网友评论

        本文标题:iOS 9.0 WKWebView自适应缩放问题解决方案

        本文链接:https://www.haomeiwen.com/subject/mgntmxtx.html