WkWebView加载后不允许缩放某些网站

问题描述 投票:1回答:1

在这里,我以编程方式将我的WkWebView添加到主视图中,然后在我为WkWebView添加此委托之后

self.wkWebView.UIDelegate = self;
self.wkWebView.navigationDelegate = self;
wkWebView.scrollView.delegate = self;

然后逐个加载网站并检查缩放功能,它缩放某些网站而不缩放其他网站

如果我正在加载http://www.google.com - 那么它允许我缩放,如果我正在加载https://www.42gears.comhttps://www.facebook.com - 那么它不允许缩放功能(这个所有网站的缩放都在Safari中工作,但在WKWebView中不起作用)

注意:我正在检查iPhone,我正在使用Objective-C

请帮帮我,提前致谢。

ios objective-c wkwebview zooming
1个回答
1
投票

在这里,我评估Javascript的缩放功能,在这里你需要在didFinishNavigation方法中添加它。所以使用这个你可以解决这个问题。

bool isAllowZoom = false;

-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
   if(isAllowZoom){
        NSString *javascript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=10.0, user-scalable=yes');document.getElementsByTagName('head')[0].appendChild(meta);";
       [webView evaluateJavaScript:javascript completionHandler:nil];
    }
    else
    {
        NSString *javascript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);";
        [webView evaluateJavaScript:javascript completionHandler:nil];
    }
}

谢谢,可能这会对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.