Macos Swift-在NSWebView OSX中加载本地文件或URL,而不是UIWebView

Macos Swift-在NSWebView OSX中加载本地文件或URL,而不是UIWebView,macos,webview,swift,Macos,Webview,Swift,好的,我们已经研究这个问题一段时间了,尝试在Swift for OS X而不是iOS中加载本地HTML文件或URL到web视图 @IBOutlet weak var Webview: WebView! func applicationDidFinishLaunching(aNotification: NSNotification?) { // Insert code here to initialize your application var url = NSURL(fil

好的,我们已经研究这个问题一段时间了,尝试在Swift for OS X而不是iOS中加载本地HTML文件或URL到web视图

@IBOutlet weak var Webview: WebView!

func applicationDidFinishLaunching(aNotification: NSNotification?) {
    // Insert code here to initialize your application

    var url = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("pageName", ofType: "html"))

    //var url = NSURL(string: "http://www.google.com")

    var request = NSURLRequest(URL: url)

    Webview.loadRequest(request)

}
因此,我知道上面的方法适用于iOS和UIKit,但在OS X中不起作用。它给出了一个错误Webview没有名为loadRequest的成员,而且它似乎没有任何加载URL的方法。任何帮助都非常感谢

您必须使用它:

        objweb.delegate = self
        var path = NSBundle.mainBundle().bundlePath

        var baseUrl  = NSURL.fileURLWithPath("\(path)")

        let bundle = NSBundle.mainBundle()
        let pathhtml = bundle.pathForResource("pageName", ofType: "html")
        let content = NSString.stringWithContentsOfFile(pathhtml) as String

        objweb.loadHTMLString(content, baseURL: baseUrl)
        self.view.addSubview(objweb)

使用
Webview.mainFrame.loadRequest(request)
而不是
Webview.loadRequest(request)

您必须以这种方式修改代码,以便首先以字符串形式请求URL。这在swift中非常有效,无需缓存资产等:

@IBOutlet var webView: UIWebView!

var urlpath = NSBundle.mainBundle().pathForResource("index", ofType: "html");

func loadAddressURL(){
    let requesturl = NSURL(string: urlpath!)
    let request = NSURLRequest(URL: requesturl)
    webView.loadRequest(request)
}

override func viewDidLoad() {
    super.viewDidLoad()

    loadAddressURL() //func above

    // Do any additional setup after loading the view, typically from a nib.
}

我收到的错误消息与:Webview.mainFrame.loadRequest(请求:urlRequest)相同。这在Swift中不起作用,因为stringWithContentsOfFile在OSX 10.9中被弃用。不确定这是否与我正在使用WKWebView有关,或者在回答此问题后情况是否发生了变化,但对我来说,我必须这样构造NSURL:
let requesturl=NSURL.fileURLWithPath(urlpath!)