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

标签 ios objective-c wkwebview zooming

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

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

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

如果我正在加载 http://www.google.com - 然后它允许我缩放 如果我正在加载 https://www.42gears.com & https://www.facebook.com - 然后不允许缩放功能(所有网站的缩放都在 safari 中工作,但在 WKWebView 中不工作)

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

请帮助我,在此先感谢。

最佳答案

这里我评估 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];
    }
}

谢谢,也许这对你有帮助。

关于ios - WkWebView 不允许在加载后缩放某些网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55101879/

相关文章:

iphone - presentPopoverFromRect 导致我的应用程序卡住

ios - 我想用 URL POST 方法在字典参数中传递数组

ios - 加载大文本文件的替代方案 - Swift

ios - 从 plist 中获取和比较 CFBundleVersion

ios - 如何在WKWebView导航上添加观察后退Action?

ios - 使用 wkWebView iOS 10 打印预览问题

ios - 将 iPhone 地址簿与后端服务器同步

objective-c - 在 HTTP Post 中实现超时

ios - WKWebView reload() 无法刷新当前页面

ios - 如何从 NSData 中拆分字节?