繁体   English   中英

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

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

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

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

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

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

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

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

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

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

使用 Xcode 12 和 Big Sur,我必须转到项目属性,选择签名和功能选项卡,然后在App Sandbox下选中Outgoing Connections (Client)才能从 Steve Brooker 那里获得出色的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM