swift WKWebView无法加载(NSViewController,OS X)

7gyucuyw  于 2022-12-22  发布在  Swift
关注(0)|答案(2)|浏览(208)

我正在尝试建立一个简单的WKWebView应用程序,它可以在WebView中显示Google。然而,在实现WKWebView之后,应用程序不再显示窗口。它只是简单地启动应用程序(在Dock中),看不到NSView。

视图控制器.swift

import Cocoa
import WebKit

class ViewController: NSViewController {

    var webView: WKWebView?

    override func loadView() {
        self.webView = WKWebView()
        self.view = self.webView!

        let url = NSURL(string:"http://www.google.com/")
        let req = NSURLRequest(URL: url!)
        self.webView!.loadRequest(req)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override var representedObject: AnyObject? {
        didSet {
        // Update the view, if already loaded.
        }
    }

}

网上似乎没有更多的例子,GitHub上似乎也没有任何项目。
谢谢我以前没见过这个。

dgjrabp2

dgjrabp21#

我猜Xcode设置背后有一些限制,那些隐藏的设置会让你的WKWebView无法工作!!!
你可以尝试这些方法,也许你会找到解决办法:
1)通过谷歌搜索这些关键词,你会发现一些教程:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

2)检查您的项目设置面板。确保您已经检查了网络[传入]和[传出]项:

lawou6xi

lawou6xi2#

使用Xcode 14时,我需要“输出连接”和帧:

var webView: WKWebView!

override func loadView() {
    // these two lines are important:
    super.loadView()
    webView = WKWebView(frame:self.view.frame)

    view = webView
    
    let url = URL(string:"https://www.example.com/")!
    let req = URLRequest(url: url)
    webView.load(req)
    
    // webView.loadHTMLString("<html><body bgcolor=red><p>Hello, World!</p></body></html>", baseURL: nil)
}

相关问题