我知道这已被多次询问,我已阅读quite a few questions 并且google了好几天,到目前为止没有成功。
我只是想在桌面应用程序中加载本地html文件,事实是这个项目我需要一个JS库,其中大部分已经作为网页完成(css,js和html,不需要服务器端处理) 。我不想强迫应用程序从互联网服务器加载网页,以免强迫用户进行互联网连接。毋庸置疑,我对Swift和苹果开发完全没有经验。
现在这是我遇到的问题: 关于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输出nil和try5输出“(功能)”
文件夹的结构是这样的:
我添加了文件夹“web”作为参考(如另一个问题中所建议的那样),但我怀疑这只能运送一个包......
我不知道是否有任何差异,但我不是针对iOS,我希望这是一款桌面应用。
任何建议都将不胜感激
答案 0 :(得分:3)
阅读this post in the apple forums并将其与this other question放在一起后,我能够提出以下工作代码:
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);
}