macos - 如何为 MacOS 创建 WKWebView 应用程序

标签 macos xcode11 html5-apps

我在 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 应用加载本地文件并在 Max OS 10.14 上的 XCode 11 中运行的工作示例的引用的人将是我的英雄。

最佳答案

第 1 步 - 安装 XCode 11 并打开它。

第 2 步 - 从主菜单中选择"file"、“新建”和“项目”。

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

第 4 步 - 为您的应用命名,为用户界面选择“ Storyboard”,然后选择“下一步”。

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

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

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

第 8 步 - 选择“为任何添加的文件夹创建文件夹引用”并选择“添加”

第 9 步 - 从导航器 Pane 中选择“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 ;
        }
    }
}

关于macos - 如何为 MacOS 创建 WKWebView 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60082417/

相关文章:

ruby - 如何使用 RVM 在 Mac OS 上安装 Ruby 2.4.0

python - 已安装 MacPort 但命令出错

objective-c - 接待员设计模式(如何重定向到主线程?)

firefox - 识别书签工具栏文件夹 (Firefox Webextension)

java - 在 macOS 11 Big Sur 上从 JavaFX 应用程序打开应用程序随机失败,并显示 kLSNoExecutableErr

ios - 如何将数据传递到 UIView 中的嵌入式 UIViewController - Swift 5

swiftui - 在 SwiftUI 上下文中,单一事实来源 (SSOT) 的含义是什么?

javascript - StarDict 支持 JavaScript 和 Firefox OS 应用程序

javascript - SpeechSynthesisUtterance 无法在专为 Android 构建的 HTML5 应用程序中运行

ios - 无法在 Xcode 11 中运行单元测试 : The run destination * is not valid for tests you have chosen to perform