如何为MacOS创建WKWebView应用程序

如何为MacOS创建WKWebView应用程序,macos,xcode11,html5-apps,Macos,Xcode11,Html5 Apps,我在IOS应用商店中有一个用XCode开发的HTML5应用程序,我希望为Mac应用商店创建该应用程序的副本。 我认为这很容易,但我找不到任何简单的教程,当然没有使用XCode 11和Swift 5.1。我不想走Mac OS 10.15中提供的自动路线 当我构建XCode 11附带的默认Hello World应用程序时,它将不会在10.14上运行!我还不想升级到10.15,主要是因为我希望该应用程序能在MacOS的早期版本上运行 任何能为我提供WKWebView应用加载本地文件的工作示例参考的人都

我在IOS应用商店中有一个用XCode开发的HTML5应用程序,我希望为Mac应用商店创建该应用程序的副本。 我认为这很容易,但我找不到任何简单的教程,当然没有使用XCode 11和Swift 5.1。我不想走Mac OS 10.15中提供的自动路线

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


任何能为我提供WKWebView应用加载本地文件的工作示例参考的人都将是我的英雄。

步骤1-安装XCode 11并打开它

第2步-从主菜单中选择“文件”、“新建”和“项目”

第3步-选择“应用程序”(左上)并选择“下一步”(右下)

第4步-为应用程序命名,在用户界面中选择“情节提要”,然后选择“下一步”

第5步-选择一个文件夹,用于在计算机上存储新应用程序,然后选择“创建”

步骤6-在XCode Navigator(左侧窗格)中,从上下文菜单中选择“添加文件”

第7步-选择包含html/javascript/css/image文件的文件夹-在本例中,我假设文件夹的名称为“www”,但它可以是任何内容-请记住将下面显示的代码中的“www”更改为您想要的内容

步骤8-选择“为任何添加的文件夹创建文件夹引用”,然后选择“添加”

步骤9-从Navigator窗格中选择“ViewController.swift”,并用下面显示的代码替换所有内容,将“www”更改为包含html等的文件夹名称,将“AppName”更改为html文件的名称

第10步-按“Run”并使用新应用程序

有关如何发布和添加其他功能(如应用内购买),请参阅Apple Developer和其他互联网资源/堆栈溢出问题

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,我必须转到项目属性,选择“签名和功能”选项卡,并检查应用程序沙箱下的传出连接(客户端),以从Steve Brooker那里获得出色的答案才能工作。

您必须更改项目的部署目标,使其在早期macOS版本上运行。从项目窗口的左侧选择项目以打开项目编辑器。单击“常规”按钮访问可设置部署目标的部分,这是可以运行该应用程序的最早macOS版本。我已经尝试过了,但发现没有任何区别,将其设置为10.12、10.13、10.14。在每种情况下,由于文件Hello World ContentView.swift中的6个错误(例如10.15中的视图不可用)和Hello World AppDelegate.swuft中的1个错误(10.15中的NSHostingView不可用),生成都会失败。Hello World示例与早期版本的macOS没有向后兼容性。苹果真可耻!Xcode默认为在新项目中使用SwiftUI。SwiftUI需要10.15。创建项目时,请从“用户界面”菜单中选择“情节提要”。然后可以将部署目标设置为10.15之前的值。如果您想支持较早的macOS版本,则无法使用Catalyst框架将iOS应用程序转换为Mac应用程序。谢谢标记,这非常有帮助。至少我有一些东西可以添加一些WKWebView创建代码。