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

Jon*_*own 9 macos webview swift

好了,一直在研究这个问题,现在一段时间,尝试将本地HTML文件或URL加载到斯威夫特网络视图OS X没有的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)

}
Run Code Online (Sandbox Code Playgroud)

所以我知道以上适用于iOS和UIKit但它在OS X中不起作用它给出了错误Webview没有名为loadRequest的成员,它似乎没有任何加载URL的方法任何帮助表示赞赏!

INS*_*ILE 7

您必须以这种方式修改代码,以便首先将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.
}
Run Code Online (Sandbox Code Playgroud)


sah*_*108 6

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


小智 -1

你必须使用它:

        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)
Run Code Online (Sandbox Code Playgroud)