使用 Swift 4 滚动 WKWebview

Posted

技术标签:

【中文标题】使用 Swift 4 滚动 WKWebview【英文标题】:Scrolling with WKWebview with Swift 4 【发布时间】:2018-10-07 18:21:04 【问题描述】:

我有一个WKWebview 正确显示来自本地网络文件的 html 内容。 html 比屏幕宽得多,我需要启用水平滚动。仅使用WKWebview 是否可行,还是我需要将WKWebview 设为UIScrollView 的子视图?

【问题讨论】:

【参考方案1】:

添加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)

【讨论】:

不幸的是,我不太了解 Objective-C。你能用 Swift 4 回答吗?

以上是关于使用 Swift 4 滚动 WKWebview的主要内容,如果未能解决你的问题,请参考以下文章

Swift-4 MacOS检测鼠标滚轮滚动到NSTextField?

我的带有自动布局约束的 Swift 4 UIScrollView 没有滚动

iOS当我滚动到底部Swift 4时如何更新表格视图数据

在 Swift 中使用 UIScrollView 进行无限循环滚动

Swift - ScrollView 中的 StackView 不滚动

Swift iOS -CollectionView 如何将单元格滚动到屏幕外