WKWebView与JS交互

  • 开发工具:Xcode9 语言:Swift4 系统环境:ipad ios10+

1.修改背景色

webView.evaluateJavaScript("document.getElementsByTagName('body')[0].style.background = '#B0C4DE'", completionHandler: nil)

2.图片放大

  • 遍历所有图片,width是按照当前webView的宽度比例,height = 'auto'按照width自适应
webView.evaluateJavaScript(
            """
            for (var j=0;j

3.字体放大

  • iphone通常字体放大使用webkitTextSizeAdjust整体放大,但是此方法在iPad上不能使用。
3.1 iPhone字体放大
webView.evaluateJavaScript("document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '200%'", completionHandler: nil)
3.2 iPad字体放大
webView.evaluateJavaScript("document.getElementsByTagName('body')[0].style.fontSize = '200%'", completionHandler: nil)
  • 特殊情况,当设置了字体大小document.getElementsByTagName('body')[0].style.fontSize并不能去改变其字体大小.如要重新设置
// 所有span标签字体放大
webView.evaluateJavaScript(
        """
        for (var j=0;j

4. 禁止缩放

  • 禁止WKWebView手势缩放
webView.evaluateJavaScript(
            """
            var script = document.createElement('meta');
            script.name = 'viewport';script.content=\"user-scalable=no\";
            document.getElementsByTagName('head')[0].appendChild(script);
            """
            , completionHandler: nil)

5. 初始化页面大小

 webView.evaluateJavaScript(
    """
    var script = document.createElement('meta');
    script.name = 'viewport';
    script.content=\"width=device-width, initial-scale=1.0,maximum-scale=1.0, minimum-scale=1.0, user-scalable=no\";
    document.getElementsByTagName('head')[0].appendChild(script);
    """
 , completionHandler: nil)
  • 标签里的scale值就是页面的初始化页面大小,< initial-scale >和可伸缩放大最大< maximum-scale >和最小< minimum-scale >的的倍数,是否支持缩放,如果还有别的需求可自行设置,如果都为1表示初始化的时候显示为原来大小,可缩放的大小都为原来的大小<即不可缩放>。

你可能感兴趣的:(WKWebView与JS交互)