所以我在WKWebView
中有一个UICollectionViewCell
。我必须打开几个网页,但是这些网页通过覆盖touchmove
事件而吞噬了滚动,如下所示:
document.addEventListener('touchmove', function(e) {
e.preventDefault();
}
我尝试将滑动手势添加到WKWebView
及其superview
中。 touchesMoved:
也不会在超级视图内部被调用。我无法在Webview上禁用userInteraction
,因为我希望能够点击并与Webview交互。
我尝试通过注入脚本来覆盖网页的现有touchmove
事件:
WKUserScript *script = [[WKUserScript alloc]initWithSource:@"window.ontouchmove = function() { \
window.webkit.messageHandlers.touchmoved.postMessage('Touches Moved..'); \
return true; \
};" injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO];
WKUserScript *docscript = [[WKUserScript alloc]initWithSource:@"document.ontouchmove = function() { \
window.webkit.messageHandlers.touchmoved.postMessage('Doc Touches Moved..'); \
return true; \
};" injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO];
[config.userContentController addUserScript:script];
[config.userContentController addUserScript:docscript];
[config.userContentController addScriptMessageHandler:self name:@"touchmoved"];
我在didReceiveScriptMessage
中获得了回调,但是它确实启用了滚动功能。
有什么方法可以启用此类网页的滚动或添加滑动手势吗?