Question or problem in the Swift programming language:
Ok, so been working on this issue for a while now, trying to load a local HTML file or URL to a web view in Swift for OS X not iOS.
@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) }
So I know the above works with iOS and UIKit but it does not work in OS X it gives the error Webview does not have a member named loadRequest and it does not seem to have any methods for loading a URL any help is appreciated!
How to solve the problem:
Solution 1:
You must revise your code this way to request the URL as a string first. This works perfectly in swift without caching assets etc:
@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. }
Solution 2:
Use Webview.mainFrame.loadRequest(request)
instead of Webview.loadRequest(request)
Solution 3:
You have to use it:
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)