Почему мой WKWebView не отображается в представлении swiftUI? - PullRequest
0 голосов
/ 31 марта 2020

Я получил следующий код swiftUI:

import SwiftUI
import WebKit

struct WebView: NSViewRepresentable {
    func makeNSView(context: Context) -> WKWebView {
        let view: WKWebView = WKWebView()
        guard let url: URL = URL(string: "https://google.com") else { return view }
        let request: URLRequest = URLRequest(url: url)

        view.load(request)

        return view
    }

    func updateNSView(_ view: WKWebView, context: Context) {

    }
}

struct ContentView: View {
    var body: some View {
        WebView()
            .frame(maxWidth: .infinity, maxHeight: .infinity)
    }
}

Проблема в том, что он просто показывает пустое представление. Как мне это исправить?

1 Ответ

1 голос
/ 31 марта 2020

Вы можете использовать приведенный ниже код, и он использует NSViewRepresentable

struct WebView: NSViewRepresentable {

    let view: WKWebView = WKWebView()

    var request: URLRequest {
        get{
            let url: URL = URL(string: "https://google.com")!
            let request: URLRequest = URLRequest(url: url)
            return request
        }
    }

    func makeNSView(context: Context) -> WKWebView {
        view.load(request)
        return view
    }

    func updateNSView(_ view: WKWebView, context: Context) {
        view.load(request)
    }

}

struct ContentView: View {

    var body: some View {
        GeometryReader { g in
            ScrollView {
                WebView()
                .frame(height: g.size.height)
            }.frame(height: g.size.height)
        }
    }
}

Если он все еще не загружается, пожалуйста, go проверьте возможности и проверьте входящие и исходящие соединения.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...