【发布时间】:2024-01-11 02:12:01
【问题描述】:
我有一个带有全宽和全高 WKWebView 的自定义键盘。我已经通过wkWebView!.scrollView.scrollEnabled = false 禁用了滚动,但在WKWebView 底部双击时我仍然有一个奇怪的滚动行为。这里是我尝试加载的简单网页的源代码:http://is.gd/gt8h2q(非常简单,只是一个带有绿色背景和一行文本的 div 全屏)。下面,一个GIF作为解释。以下是我创建 WKWebView 的方法:
class KeyboardViewController: UIInputViewController, WKScriptMessageHandler {
var wkWebView: WKWebView?
override func loadView() {
super.loadView()
let contentController = WKUserContentController()
contentController.addScriptMessageHandler(self, name:"callbackTestOne")
let config = WKWebViewConfiguration()
config.userContentController = contentController
self.wkWebView = WKWebView(frame:self.view.frame, configuration:config)
self.view = self.wkWebView!
}
override func viewDidLoad() {
super.viewDidLoad()
(...)
wkWebView!.scrollView.bounces = false
wkWebView!.scrollView.scrollEnabled = false
wkWebView!.scrollView.backgroundColor = UIColor(red:248, green:248, blue:248, alpha:1)
wkWebView!.scrollView.opaque = true
wkWebView!.scrollView.showsHorizontalScrollIndicator = false
wkWebView!.scrollView.showsVerticalScrollIndicator = false
wkWebView!.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal
}
(...)
【问题讨论】:
-
仍然没有解决的问题...我找到了一个肮脏的方法来解决:在我的本地加载页面中,当滚动位置> 0时,我使用 jQuery 自动滚动到顶部。代码:
$(window).scroll(function() { if ( $(window).scrollTop() > 0 ) { $(window).scrollTop(0); }; }); -
这是一个真正的问题。将 WKWebView 添加到 iMessage 应用程序或扩展程序时也会发生同样的事情。
标签: swift scroll double-click wkwebview wkwebviewconfiguration