如何为 MacOS 创建 WKWebView 应用程序

How do I create a WKWebView App for MacOS

我在 IOS App Store 中 XCode 开发了一个 HTML5 应用程序,我希望为 Mac App Store 创建该应用程序的副本。 我认为这很容易,但我找不到任何简单的教程可以遵循,当然不使用 XCode 11 和 Swift 5.1。我不想走 Mac OS 10.15

中提供的自动路线

当我构建 XCode 11 附带的默认 Hello World 应用程序时,它不会在 10.14 上 运行!我还不想升级到 10.15,主要是因为我希望该应用程序可以在 MacOS

的早期版本上运行

任何可以向我提供 WKWebView 应用加载本地文件的工作示例的参考的人都将成为我的英雄 XCode 11 on Max OS 10.14 .

第 1 步 - 安装 XCode11 并打开它。

第 2 步 - Select "File" 和 "New" 和 "Project" 从主菜单。

第 3 步 - Select "App"(左上)和 Select "Next"(右下)。

第 4 步 - 为您的应用程序命名,用于用户界面 select "Storyboard" 然后 select "Next".

第 5 步 - Select 用于在计算机上存储新应用程序的文件夹和 select "Create"。

第 6 步 - 在 XCode 导航器(左侧窗格)中 select "Add Files" 从上下文菜单中。

第 7 步 - Select 包含你的 html/javascript/css/image 文件的文件夹 - 在本例中我假设文件夹的名称为 "www" 但它可以是任何名称 - 请记住更改"www"在下面显示的代码中你想要什么。

步骤 8 - Select "Create folder references for any added folders" 和 select "Add"

第 9 步 - Select "ViewController.swift" 从导航器窗格中将所有内容替换为下面显示的代码,将 "www" 更改为包含 html 等的文件夹名称,然后将 "AppName" 更改为您的 html 文件的名称。

第 10 步 - 按 "Run" 并使用您的新应用程序。

有关如何发布它和添加其他功能(例如在应用内购买),请参阅 Apple Developer 和其他互联网 resources/stack 溢出问题。

import Cocoa
import WebKit

class ViewController: NSViewController, WKUIDelegate
    {
    var webView: WKWebView!

    override func loadView()
        {
        let webConfiguration = WKWebViewConfiguration ();
        webConfiguration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs");
        webView = WKWebView (frame: CGRect(x:0, y:0, width:800, height:600), configuration:webConfiguration);
        webView.uiDelegate = self ;
        view = webView;
        }

    override func viewDidLoad() {
    super.viewDidLoad()

    if let url = Bundle.main.url ( forResource: "AppName"
                                 , withExtension: "html"
                                 , subdirectory: "www")
        {
        let path = url.deletingLastPathComponent();
        self.webView.loadFileURL ( url
                                 , allowingReadAccessTo: path);
        self.view = webView ;
        }
    }
}

使用 Xcode 12 和 Big Sur 我必须转到项目属性,select Signing & Capabilities 选项卡,然后检查 App Sandbox 下的传出连接(客户端) 以获得 Steve Brooker 的出色答案。