在这里,我以编程方式将WkWebView添加到主视图中,然后在为WkWebView添加此委托之后
self.wkWebView.UIDelegate = self;
self.wkWebView.navigationDelegate = self;
wkWebView.scrollView.delegate = self;
然后逐个加载网站并检查缩放功能,它是针对某个网站进行缩放,而不针对其他网站进行缩放
如果我正在加载 http://www.google.com -那么我可以进行缩放 并且如果我正在加载 https://www.42gears.com 和 https://www.facebook.com -那么,则不允许缩放功能(此网站的所有缩放功能均适用于野生动物园,但不能在WKWebView中工作)
注意:我正在检查iPhone,并且正在使用Objective-C
请帮助我,谢谢。
答案 0 :(得分: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];
}
}
谢谢,也许这会对您有所帮助。
答案 1 :(得分:0)
在Xcode 11,iOS 12、13上的Swift 4上更新了Sapana Ranipa答案
let isAllowZoom: Bool = false
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("didFinish navigation")
self.activityIndicatorwbweb.stopAnimating()
if(isAllowZoom){
let 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);"
webViewWB.evaluateJavaScript(javascript, completionHandler: nil)
}
else
{
let 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);"
webViewWB.evaluateJavaScript(javascript, completionHandler: nil)
}
}