macos – OSX Swift webview加载本地文件

macos – OSX Swift webview加载本地文件,第1张

概述我知道这已被多次询问,我已阅读 quite a few questions 并且google了好几天,到目前为止没有成功. 我只想在桌面应用程序中加载本地html文件,事实是这个项目我需要一个JS库,其中大部分已经作为网页完成(css,js和html,不需要服务器端处理).我不想强迫应用程序从互联网服务器加载网页,以免强迫用户进行互联网连接.毋庸置疑,我对Swift和苹果开发完全缺乏经验. 现在这 我知道这已被多次询问,我已阅读 quite a few questions
并且Google了好几天,到目前为止没有成功.

我只想在桌面应用程序中加载本地html文件,事实是这个项目我需要一个Js库,其中大部分已经作为网页完成(CSS,Js和HTML,不需要服务器端处理).我不想强迫应用程序从互联网服务器加载网页,以免强迫用户进行互联网连接.毋庸置疑,我对Swift和苹果开发完全缺乏经验.

现在这是我遇到的问题:

关于params和IDe的抱怨似乎让他们没事.

这里有一个我最新代码的片段:

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:调用中的额外参数和/path/TestWebVIEw/AppDelegate.swift:32:36:调用中缺少参数’cachePolicy’的参数

此时try1和try2输出“main.HTML”,try3和try4输出nil和try5输出“(Function)”

文件夹的结构是这样的:

我添加了文件夹“web”作为参考(在另一个问题中建议),但我怀疑这只能运送一个包…

我不知道是否有任何差异,但我不是针对iOS,我希望这是一个桌面应用程序.

任何建议将不胜感激

解决方法 阅读 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);    }
总结

以上是内存溢出为你收集整理的macos – OSX Swift webview加载本地文件全部内容,希望文章能够帮你解决macos – OSX Swift webview加载本地文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存