在这里我以编程方式将我的 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/