在Swift中加载窗口加载的URL

时间:2014-11-10 19:02:37

标签: swift webview xcode6

我在主对话框加载后尝试在Swift中加载我的WebView中的URL。我不确定我做错了什么:

class WebViewController: NSViewController {

    @IBOutlet var webView: WebView!

    // constants
    let webUrl = "https://www.google.com"
    let webUA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36"

    override func viewDidLoad() {
        super.viewDidLoad()
        let request = NSMutableURLRequest(URL: NSURL(string: webUrl)!)
        request.setValue(webUA, forHTTPHeaderField: "User-Agent")
        webView.mainFrame.loadRequest(request)
    }
}

调试时没有错误或警告。我想我正确地将笔尖与对象联系起来了:

我现在和代表团玩了几个小时。该页面根本无法加载。

起初我尝试使用applicationDidFinishLaunching,但情况更糟,因为WebView从未完成创建并且是nil

3 个答案:

答案 0 :(得分:0)

好吧,所以将ViewController更改为:

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var webView: UIWebView!

    var urlPath = "http://www.google.com"

    func loadAddressUrl() {
        let requestUrl = NSURL(string: urlPath)
        let request = NSURLRequest(URL: requestUrl!)
        webView.loadRequest(request)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        loadAddressUrl()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

将@IBOutlet链接到您的Web视图控制器。如果需要,可以使用示例项目。

来源:https://www.youtube.com/watch?v=Rva9ylPHi2w

答案 1 :(得分:0)

原来我指的是错误的WebView?!

在层次结构中,它显示如下:enter image description here

我需要使用突出显示的那个,而不是内部的那个。当我从对象拖动到布局构建器中的物理视图对象时,使用内部的一个。不知何故拖到这个固定它。

答案 2 :(得分:0)

swfit 4版本的loadAddressUrl()

private func loadAddressUrl() {
    let requestUrl = NSURL(string: url.text!)
    let request = NSURLRequest(url: requestUrl! as URL)
    webView.load(request as URLRequest)
}