如何修改iOS WKWebView Swift代码以在macOS上执行相同操作?

问题描述 投票:0回答:1

这是我目前拥有的,可在iOS上使用。

这是一个简单的测试试用,用于将WebView加载到iOS。这不应该放在AppStore或类似的东西上-因此,请不要通过将我链接到关于stackoverflow的有关“ Apple不允许它的方式”的文章来提供帮助。我只想在本地运行此应用。

我开始做这个是因为我无法弄清楚如何在macOS上进行类似操作。

我现在拥有的代码如下-基本上是从多个iOS WKWebView Swift代码教程中粘贴和修改的。

ViewController.swift

import UIKit
import WebKit

let webView = WKWebView()

class ViewController: UIViewController {

    override func loadView() {
        self.view = webView

        if let url = URL(string: "https://daringfireball.net") {
            let request = URLRequest(url: url)
            webView.load(request)
        }

    }

  override func viewDidLoad()
    {
        super.viewDidLoad()

        let request = URLRequest(url: URL(string: "https://daringfireball.net")!)

        webView.load(request)
    }


}

现在,这是我的问题:如何更改此设置,使其可以在macOS Catalina上运行,因此我可以将其另存为.app并运行它。同样,不要试图让它成为AppStore-仅用于本地使用。

我认为macOS没有“ UIKit”。另外,在代码中指定相同URL的两个位置是否多余,是否应该仅覆盖一个?

swift macos webkit wkwebview
1个回答
0
投票

您快到了:)

这是您需要添加到macOS项目中以使其加载网页的代码

import Cocoa
import WebKit

class ViewController: NSViewController {

    let webView = WKWebView()

    override func loadView() {
        view = webView
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        let request = URLRequest(url: URL(string: "https://daringfireball.net")!)
        webView.load(request)
    }
}

您绝对正确,因为macOS没有UIKit,而是使用Cocoa,如此处所示。

当您质疑自己时,我已经自由删除了一个“加载网页”代码段。现在我们将其加载到viewDidLoad

[如果您使用Xcode创建一个新的macOS项目并粘贴以上内容,然后运行您的项目.....什么都没有发生:(

这是因为我们需要做最后一件事。

因此,请转到您的项目概述,然后选择“签名和功能”窗格。

您需要在“应用程序沙箱”下选中“外向连接(客户端)”,如下所示:>

capabilities

希望您现在会看到您的网页已加载。

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.