iOS10中的WKWebView捏缩放

时间:2016-08-05 05:10:23

标签: ios objective-c webview ios10

我遇到了一个问题,在我将手机升级到iOS 10 beta 3后,当我在我的应用中缩放WKWebView时,缩放功能不仅缩放了网页的内容,还缩放了页面本身。

查看我附上的图片。 WKWebView that fails to zoom correctly.我将WKWebView的背景颜色设置为蓝色,当我捏缩缩视图时,页面(容器?)本身也缩小了,导致不利的结果。 在iOS9中不会发生。当我做同样的事情时,蓝色背景不显示。 该网页使用AngularJS编写,图表 lib d3js

相关代码如下。

-(void) reloadWebPage{
    [activityIndicator startAnimating];
    NSString *indexToPath = [self getIndexHtmlPath];
    NSURL *fileUrl = [NSURL fileURLWithPath:indexToPath];
    NSURL *absoluteUrl = fileUrl.absoluteURL;
    if(currentGroup == nil){
        currentGroup = @"0";
    }
    NSString *absoluteString = [[absoluteUrl absoluteString] stringByAppendingFormat:@"%@%@", @"?currentGroup=", currentGroup];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:absoluteString] ];
    [webView loadRequest:request];

}

- (void)createWebView{

    WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
    [config.userContentController addScriptMessageHandler:self name:@"interOp"];
    webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:config];
    [webView setBackgroundColor:[UIColor blueColor]];
    [webView setNavigationDelegate:self];
    [webView setUIDelegate:self];
}

我不知道问题出在哪里?它是在Objective C,iOS10还是Javascript中?
请建议,我该如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

好的,我通过在WKWebView中禁用缩放和滚动来解决了这个问题。

webView.scrollView.scrollEnabled = false;

- (UIView*) viewForZoomingInScrollView:(UIScrollView *)scrollView{ return nil; }

添加这些代码后,WKWebView本身不再缩放,而是在节点正常移动和缩放时移动。

这个问题似乎与Disable magnification gesture in WKWebView有些相关,但是 我还是不知道是什么导致了从iOS9到iOS10的变化。但它似乎对我有用。