簡體   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 負載的完整設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM