1

我在 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 应用程序加载本地文件的工作示例的参考的人都将是我的英雄。

4

2 回答 2

4

第 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 步 - 按“运行”并使用您的新应用程序。

有关如何发布它和添加其他功能(例如在应用程序购买中),请参阅 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 ;
        }
    }
}
于 2020-02-07T20:20:30.267 回答
1

使用 Xcode 12 和 Big Sur,我必须转到项目属性,选择Signing & Capabilities选项卡,然后检查App Sandbox 下的Outgoing Connections (Client)以获得 Steve Brooker 的出色回答。

于 2020-11-23T01:25:41.127 回答