iOS 中最简单的 webview 应用程序 - 未能 运行

Simplest webview app in iOS - fail to run

我正在尝试制作一个 ios 应用程序,只需打开 URL。所以基本上是一个 webview 应用程序。我正在使用 XCode 12.4,这就是我所做的:

  1. 创建新项目->iOS应用程序-->(见下图)
  2. 创建一个新文件:ViewController.swift -->
import WebKit
class WebViewController: UIViewController, WKNavigationDelegate {

    var webView: WKWebView!
    
    override func loadView() {
        webView = WKWebView()
        webView.navigationDelegate = self
        view = webView
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let url = URL(string: "https://developer.apple.com")!
        webView.load(URLRequest(url: url))
    }
}
  1. 构建并 运行.

问题是应用程序继续在“Hello World”上打开,我想原因是 MyappApp.swift 文件正在调用 ContentView 而不是 ViewController

import SwiftUI

@main
struct myappApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

我该如何解决这个问题?

免责声明:这是我的第一个 iOS 应用程序,我对 iOS 开发者知之甚少。

您非常接近...将您的 WebViewController 包裹在 UIViewControllerRepresentable 中以使其与 SwiftUI 兼容

import SwiftUI
struct WebView_UI: UIViewControllerRepresentable {
    func makeUIViewController(context: Context) -> some UIViewController {
        let vc = WebViewController()
        return vc
    }
    func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
        
    }
}

然后在 SwiftUI struct 中引用您的新 SwiftUI UIViewControllerRepresentable。例如...

struct myappApp: App {
    var body: some Scene {
        WindowGroup {
            WebView_UI()
        }
    }
}

或者...

struct ContentView: View {
    var body: some View {
        VStack{
            Text("Hello World!").padding()
            WebView_UI()
        }
    }
}