Fork me on GitHub

WKWebView与JS交互

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

1.修改背景色

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

2.图片放大

  • 遍历所有图片,width是按照当前webView的宽度比例,height = 'auto'按照width自适应
1
2
3
4
5
6
7
8
webView.evaluateJavaScript(
"""
for (var j=0;j<document.images.length;j++) {
document.images[j].style.width = '50%';
document.images[j].style.height = 'auto';
}
"""
, completionHandler: nil)

3.字体放大

  • iphone通常字体放大使用webkitTextSizeAdjust整体放大,但是此方法在iPad上不能使用。
3.1 iPhone字体放大
1
webView.evaluateJavaScript("document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '200%'", completionHandler: nil)
3.2 iPad字体放大
1
webView.evaluateJavaScript("document.getElementsByTagName('body')[0].style.fontSize = '200%'", completionHandler: nil)
  • 特殊情况,当<span style=\"font-size: 18px;\">设置了字体大小document.getElementsByTagName('body')[0].style.fontSize并不能去改变其字体大小.如要重新设置
    1
    2
    3
    4
    5
    6
    7
    8
    // 所有span标签字体放大
    webView.evaluateJavaScript(
    """
    for (var j=0;j<document.getElementsByTagName('span').length;j++) {
    document.getElementsByTagName('span')[j].style.fontSize = '100%';
    }
    """
    , completionHandler: nil)

4. 禁止缩放

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

5. 初始化页面大小

1
2
3
4
5
6
7
8
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 >的的倍数,<user-scalable>是否支持缩放,如果还有别的需求可自行设置,如果都为1表示初始化的时候显示为原来大小,可缩放的大小都为原来的大小<即不可缩放>。
------ 本文结束------

本文标题:WKWebView与JS交互

文章作者:Devin

最后更新:2017年10月24日 - 19:43:47

原始链接:http://devinol.com/iOS/WKWebView与JS交互/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%