Macos Swift-在NSWebView OSX中加载本地文件或URL,而不是UIWebView
好的,我们已经研究这个问题一段时间了,尝试在Swift for OS X而不是iOS中加载本地HTML文件或URL到web视图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
@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!)