繁体   English   中英

Swift WKWebview初始缩放和放大

[英]Swift WKWebview Initial zoom and magnification

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

我有一个 webview 可以通过缩放比例正确放大和缩小。

但是,我想在加载 webview 时设置初始缩放比例。 例如,我希望 web 视图呈现为好像我将 web 视图一直捏到最大。

(向内捏到屏幕中央,而不是放大)

如何初始化 webview 以开始完全缩小?

// MARK: WebView
    lazy var webView: WKWebView = {
        let webConfiguration = WKWebViewConfiguration()
        let webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        webView.scrollView.delegate = self
        webView.navigationDelegate = self
        webView.translatesAutoresizingMaskIntoConstraints = false
        webView.contentMode = .center
        webView.scrollView.isScrollEnabled = true
        webView.allowsBackForwardNavigationGestures = false
        webView.scrollView.zoomScale = 2.0
        webView.backgroundColor = appGrey
  
        return webView
    }()

我已经为 objective-c 完成了它,它现在正在我的一个应用程序中运行,可以随意将其转换为 Swift;)如果我有时间,我将编辑此答案以添加它。 您必须设置内容,而不是组件。

NSString *_wa_initial_zoom = @"var meta = document.createElement('meta'); meta.name = 'viewport'; meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'; var head = document.getElementsByTagName('head')[0]; head.appendChild(meta);";

NSString *source = [self wkWebViewSetInitialZoomScale];
WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:source injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO];
        
WKUserContentController *wkUController = [[WKUserContentController alloc] init];
[wkUController addUserScript:wkUScript];
        
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
wkWebConfig.websiteDataStore = WKWebsiteDataStore.defaultDataStore;
wkWebConfig.userContentController = wkUController;
        
wkWebConfig.preferences = [[WKPreferences alloc] init];
wkWebConfig.preferences.minimumFontSize = 10;
// JavaScript
wkWebConfig.preferences.javaScriptEnabled = YES;
wkWebConfig.preferences.javaScriptCanOpenWindowsAutomatically = YES;
wkWebConfig.processPool = [[WKProcessPool alloc] init];
        
WKWebView *_wkWebView  = [[WKWebView alloc] initWithFrame:_wkWebView.bounds configuration:wkWebConfig];

这是 objective-c 中 WKWebView 负载的完整设置。

问题未解决?试试搜索: Swift WKWebview初始缩放和放大
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM