Как создать приложение WKWebView для MacOS - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть приложение HTML5, разработанное в XCode в IOS App Store, и я sh создаю копию этого приложения для Ma c App Store. Я думал, что это будет легко, но я не могу найти никаких простых руководств, чтобы следовать, конечно, не используя XCode 11 и Swift 5.1. Я не хочу go вниз по автоматизированному маршруту, предоставленному в Ma c OS 10.15

Когда я собрал стандартное приложение Hello World, которое поставляется с XCode 11, оно не будет работать на 10.14! Я пока не хочу обновляться до 10.15, в первую очередь потому, что я хочу, чтобы приложение работало на более ранних версиях MacOS

. Любой, кто может предоставить мне ссылку на рабочий пример приложения WKWebView, загружающего локальные файлы, которые работают в XCode 11 на Max OS 10.14 будет моим героем.

1 Ответ

0 голосов
/ 07 февраля 2020

Шаг 1 - Установите XCode 11 и откройте его.

Шаг 2 - Выберите «Файл», «Новый» и «Проект» из главного меню.

Шаг 3 - Выберите « Приложение »(вверху слева) и выберите« Далее »(внизу справа).

Шаг 4 - Дайте название своему приложению, выберите« Интерфейс пользователя »для интерфейса пользователя, а затем« Далее ».

Шаг 5 - Выберите папку для хранения нового приложения на вашем компьютере и выберите «Создать».

Шаг 6 - В XCode Navigator (левая панель) выберите «Добавить файлы» из контекстного меню.

Шаг 7 - Выберите папку, содержащую файлы html / javascript / css / image - в этом примере я предполагаю, что папка будет иметь имя «www», но это может быть что угодно - просто не забудьте изменить «www» в приведенном ниже коде, что вы хотите.

Шаг 8 - Выберите «Создать ссылки на папки для любых добавленных папок» и выберите «Добавить»

Шаг 9 - Выберите «ViewController.swift» из панель навигатора и замените все на код, показанный ниже, изменив "www" на имя папки, содержащей ваш html et c и замену «AppName» на имя вашего html файла.

Шаг 10 - Нажмите «Выполнить» и используйте новое приложение.

Чтобы узнать, как его опубликовать sh и добавить другие функции (например, при покупке приложений), обратитесь к разделу Apple Developer и другим вопросам о переполнении ресурсов / стека inte rnet.

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 ;
        }
    }
}
...