在WKWebView中滑动手势

时间:2018-07-29 05:35:48

标签: ios objective-c uiwebview wkwebview

所以我在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中获得了回调,但是它确实启用了滚动功能。

有什么方法可以启用此类网页的滚动或添加滑动手势吗?

0 个答案:

没有答案