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 ответ:
Прочитав этот пост на форумах 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); }