首页 > 解决方案 > 使用 Swift 4 滚动 WKWebview

问题描述

我有一个WKWebview正确显示来自本地网络文件的 html 内容。html 比屏幕宽得多,我需要启用水平滚动。这可能只WKWebview需要 还是我需要制作WKWebviewa 的子视图UIScrollView

标签: htmliosuiscrollviewswift4wkwebview

解决方案


添加Javascript以根据设备修复屏幕宽度和高度。

使用此代码:

NSString *js = @"var metaTag=document.createElement('meta');"
"metaTag.name = \"viewport\";"
"metaTag.content = \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\";"
"document.getElementsByTagName('head')[0].appendChild(metaTag);";

WKUserScript *script = [[WKUserScript alloc] initWithSource:js injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
[_WebView.configuration.userContentController addUserScript:script];

在斯威夫特

let js = """
var metaTag=document.createElement('meta');\
metaTag.name = "viewport";\
metaTag.content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0";\
document.getElementsByTagName('head')[0].appendChild(metaTag);
"""

let script = WKUserScript(source: js, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
self.webView.configuration.userContentController.addUserScript(script)

推荐阅读