OSX Swift webview загрузить локальный файл


Я знаю, что об этом спрашивали много раз, и я читал довольно а немногие вопросы и гуглил в течение нескольких дней без успеха до сих пор.

Я просто хочу загрузить локальный html-файл в настольное приложение, правда для этого проекта мне нужна библиотека JS, и большая ее часть уже сделана в виде веб-страницы (css, js и html, не требуется обработка на стороне сервера). Я не хочу заставлять приложение загружать веб-страницу с интернет-сервера, чтобы не заставлять пользователей иметь подключение к интернету. Излишне говорить, что я совершенно неопытен в разработке Swift и apple.

Прямо сейчас это проблема, с которой я сталкиваюсь.: Введите описание изображения здесь жалобы ide на params и я не могу, кажется, получить их правильно.

Для справки вот фрагмент моего последнего кода:

class AppDelegate: NSObject, NSApplicationDelegate
{
    @IBOutlet weak var window: NSWindow!
    @IBOutlet weak var webView: WebView!
    typealias NSSize = CGSize

    func applicationDidFinishLaunching(aNotification: NSNotification?)
    {
        self.window.title = "Chess Study Room"

        var try1 = "main.html";
        println(try1);

        var try2 = NSURL(string: try1)!;
        println(try2);

        var try3 =
        NSBundle.URLForResource("main", withExtension: "html", subdirectory: "web", inBundleWithURL: try2);
        println(try3);

        var try4 = NSBundle.pathForResource("main", ofType: "html", inDirectory: "web");
        println(try4);

        var try5 = NSString.stringByAppendingPathComponent("main.html");
        println(try5);
        // var myInternalUrl = NSURL(string: myInternalHtml)!;
        //NSLog("%s", myInternalHtml!);
        var request = NSURLRequest(try1,
            NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData,
            60
        );

        self.webView.frameLoadDelegate = self;
        self.webView.mainFrame.loadRequest(
            request!
        );
    }
Но, как вы можете видеть из моего gif, я пробовал и другие вещи. Полные ошибки /path/TestWebView/AppDelegate.swift:32:35: Extra argument in call и /path/TestWebView/AppDelegate.swift:32:36: Missing argument for parameter 'cachePolicy' in call

В этот момент try1 и try2 выводят " main.html", try3 и try4 выводят ноль и try5 выводит"(функция) "

Структура папок такова: Введите описание изображения здесь

Я добавил папку " web " в качестве ссылки (как советуется в другом вопросе), но я сомневаюсь, что это сработает, чтобы отправить только один пакет...

Я не знаю, есть ли разница, но я не ориентируюсь на iOS, я хочу, чтобы это было настольное приложение.

Любые советы будут высоко оценены

1 4

1 ответ:

Прочитав этот пост на форумах apple и поставив его вместе с этим другим вопросом, я смог придумать следующий рабочий код:

func applicationDidFinishLaunching(aNotification: NSNotification?)
    {
        self.window.title = "My App Title"

        var try6 = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("main", ofType:"html")!)

        var request = NSURLRequest(URL: try6!);

        self.webView.frameLoadDelegate = self;
        self.webView.mainFrame.loadRequest(request);
    }