下面的答案不再是iOS的10測試版的工作。
在Safari中改善網站可訪問性,用戶現在可以 捏到變焦,即使一個網站設置用戶可擴展=沒有在 口中。
WKWebView似乎要尊重視口元標記以同樣的方式移動Safari瀏覽器也(如所預期)。所以,我發現在頁面加載完成後,通過javascript將該標籤注入DOM。除非您確切知道將HTML加載到webview中,否則我會厭倦此解決方案,否則我懷疑它會產生意想不到的後果。就我而言,我正在加載HTML字符串,所以我可以將它添加到隨應用程序一起提供的HTML中。
要在任何網頁上做一般:
- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
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];
}
這可能是明智的,看看剛剛完成什麼樣的導航,因爲只有新的頁面都需要執行這個JavaScript。
不要忘記添加符合'UIScrollViewDelegate',設置'webView.scrollView.delegate = self;'並且將代理指針置於'deinit'中。 – 2015-10-20 14:17:02
這應該被注意爲正確的答案。原生iOS解決方案,而不是嘗試注入JS。 – C6Silver 2015-12-03 19:18:46
我不同意。雖然本地解決方案是理想的,但我認爲這個解決方案與JS解決方案一樣,並且可能更脆弱。雖然WKWebView發佈UIScrollView,但內部使用的是WKScrollView。雖然它是UIScrollView的子類,但它忽略/重寫了許多標準行爲(contentInset)。縮放HTML文檔與縮放UIView非常不同,所以我可以看到這個改變/不再有效的未來。由於JS解決方案使用W3C標準,因此應始終得到支持。 – Kevin 2016-01-28 18:52:39