如何在Swift中加载UIWebView中的URL?

如何在Swift中加载UIWebView中的URL?,swift,ios8,Swift,Ios8,我有以下代码: UIWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca"))) 我得到以下错误: “NSURLRequest”不能转换为UIWebView 知道问题出在哪里吗 是实例方法,而不是类方法。您应该尝试以UIWebview的实例作为接收方调用此方法,而不是类本身 webviewInstance.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))

我有以下代码:

UIWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")))
我得到以下错误:

“NSURLRequest”不能转换为UIWebView

知道问题出在哪里吗

是实例方法,而不是类方法。您应该尝试以UIWebview的实例作为接收方调用此方法,而不是类本身

webviewInstance.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))
但是,正如@radex在下面正确指出的那样,您也可以利用currying这样调用函数:

UIWebView.loadRequest(webviewInstance)(NSURLRequest(URL: NSURL(string: "google.ca")!))   
斯威夫特5

webviewInstance.load(NSURLRequest(url: NSURL(string: "google.ca")! as URL) as URLRequest)

UIWebView loadRequest:使用NSURL对象创建NSURLRequest,然后将请求传递给
UIWebView
,它会将请求的URL加载到web视图中

 override func viewDidLoad() {
     super.viewDidLoad()
     // Do any additional setup after loading the view, typically from a nib.
     let url = NSURL (string: "http://www.google.com");
     let requestObj = NSURLRequest(URL: url!);
     myWebView.loadRequest(requestObj);
     self.view.addSubview(myWebView)
  }
更多参考:

试试这个:

  • 将UIWebView添加到视图

  • 使用助手编辑器连接UIWebview插座并命名为“webview”

  • UIWebView加载URL

    @IBOutlet weak var webView: UIWebView!
    
    override func viewDidLoad() {
       super.viewDidLoad()
        // Your webView code goes here
       let url = URL(string: "https://www.example.com")
       let requestObj = URLRequest(url: url! as URL)
       webView.load(requestObj)
    }
    
  • 然后运行应用程序

    Swift中的UIWebView

    @IBOutlet weak var webView: UIWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
            let url = URL (string: "url here")
            let requestObj = URLRequest(url: url!)
            webView.loadRequest(requestObj)
        // Do any additional setup after loading the view.
    }
    
    /////////////////////////////////////////////////////////////////////// 如果您想使用webkit

    @IBOutlet weak var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
    
        let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.webView.frame.size.height))
        self.view.addSubview(webView)
        let url = URL(string: "your URL")
        webView.load(URLRequest(url: url!))`
    

    将URL加载到WebView非常简单。只需在故事板中创建一个WebView,然后就可以使用以下代码加载url

        let url = NSURL (string: "https://www.simplifiedios.net");
        let request = NSURLRequest(URL: url!);
        webView.loadRequest(request);
    
    简单到只有3行代码:)

    参考:

    试试这个


    对于Swift 3.1及以上版本

    let url = NSURL (string: "Your Url")
    let requestObj = NSURLRequest(url: url as! URL);
    YourWebViewName.loadRequest(requestObj as URLRequest)
    

    Swift 3不再在URL和URLRequest上使用NS前缀,因此更新后的代码为:

    let url = URL(string: "your_url_here")
    yourWebView.loadRequest(URLRequest(url: url!))
    

    Swift 3-Xcode 8.1

     @IBOutlet weak var myWebView: UIWebView!
    
        override func viewDidLoad() {
                super.viewDidLoad()
    
                let url = URL (string: "https://ir.linkedin.com/in/razipour1993")
                let requestObj = URLRequest(url: url!)
                myWebView.loadRequest(requestObj)
    
            }
    

    在Swift 3中,您可以这样做:

    @IBOutlet weak var webview: UIWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        // Web view load
        let url = URL (string: "http://www.example.com/")
        let request = URLRequest(url: url!)
        webview.loadRequest(request)
    }
    
    请记住在
    Info.plist
    添加权限,添加以下值:


    Swift 3

    @IBOutlet weak var webview: UIWebView!
    webview.loadRequest(URLRequest(url: URL(string: "https://www.yourvideo.com")!))
    

    Swift 4更新以编程方式创建网络视图

    import UIKit
    import WebKit
    class ViewController: UIViewController, WKUIDelegate {
    
    var webView: WKWebView!
    
    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        view = webView
    }
    override func viewDidLoad() {
        super.viewDidLoad()
    
        let myURL = URL(string: "https://www.apple.com")
        let myRequest = URLRequest(url: myURL!)
        webView.loadRequest(myRequest)
    }}
    

    简单、经过测试且100%工作

    导入webkit:

    import WebKit
    
    将IBOutlet分配给webview:

    var webView : WKWebView!
    
    设置委托:

    class ViewController: UIViewController , WKNavigationDelegate{
    
    在viewDidLoad()上编写代码:

    编写委托方法:

    //MARK:- WKNavigationDelegate
    
    func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
    print(error.localizedDescription)
    }
    
    
     func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    print("Strat to load")
        }
    
     func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    print("finish to load")
    }
    
    看起来像:
    使用Swift语言的Webview

    let url = URL(string: "http://example.com")
       webview.loadRequest(URLRequest(url: url!))
    

    对于swift 4.2和5+

    @IBOutlet weak var webView: UIWebView!
    
        override func viewDidLoad() {
           super.viewDidLoad()
               //Func Gose Here 
              let url = URL(string: link)
              let requestObj = URLRequest(url: url! as URL)
               webView.loadRequest(requestObj)
    
           }
    

    在Swift 4或4.2中,您可以使用如下命令:

  • 添加WKWebView并连接到您的视图控制器
  • 你的观点如下:

     import UIKit
     import WebKit
    
    class ViewController: UIViewController {
    
       @IBOutlet weak var wkwebview: WKWebView!
    
        override func viewDidLoad() {
           super.viewDidLoad()
    
          let request = URLRequest(url: URL(string: "**your URL**")!)        
          wkwebview?.load(request)
    
      }
    
    }
    
  • 允许任意加载true info.plist

      <key>NSAppTransportSecurity</key>
         <dict>
           <key>Allow Arbitrary Loads</key>
              <true/>
        </dict>
    
    NSAppTransportSecurity
    允许任意载荷
    
    Note info.plist看起来像贝娄


  • 您可以加载如下页面:

    let url: URL = URL(string:"https://google.com")!
    webView.loadRequest(URLRequest.init(url: url))
    
    或单线法:

    webView.loadRequest(URLRequest.init(url: URL(string: "https://google.com")!))
    
    webView是您的出口变量

    在swift 5中


    谢谢我连接了@IBOutlet并让它工作。这太棒了!:)@0x7fffffff不是一个bug。Swift中的实例方法是以实例对象作为其幕后第一个参数的通用类方法。因此,本质上,您可以说
    UIWebView.loadRequest(webviewInstance)(…)
    swift3版本:
    webviewInstance.loadRequest(NSURLRequest(url:NSURL(string:“google.ca”)!as url)as URLRequest)
    swift4.2版本:'webviewInstance.load(URLRequest(url:url(string:“google.ca”))'它生成了应用程序,但随后在控制台中也抛出了一个错误:libc++abi.dylib:以NSException类型的未捕获异常终止可能是因为您的IBOutlet不存在删除该插座连接并正确连接。我再次重新连接了它。
    @IBOutlet弱var myWebView:UIWebView但错误仍在显示。我遇到了与@andufo相同的问题。我解决这个问题的唯一方法就是从头开始。这可能是因为你的webView是一个可选值。尝试将
    添加到
    myWebView?.loadRequest(requestObj)请注意,“shouldStartLoadWithRequest”方法(仅限谷歌)似乎更适合于2016年。希望它能帮助某人如何停止加载符号的运行?它在页面加载后继续运行。@ Marin需要使用启动/停止动画活动。请考虑编辑您的帖子来添加解释,这将有助于OP和其他人理解您的答案。它节省了我的时间,只是提到我需要在target->General选项卡中添加frameworkwebkit
    
      <key>NSAppTransportSecurity</key>
         <dict>
           <key>Allow Arbitrary Loads</key>
              <true/>
        </dict>
    
    let url: URL = URL(string:"https://google.com")!
    webView.loadRequest(URLRequest.init(url: url))
    
    webView.loadRequest(URLRequest.init(url: URL(string: "https://google.com")!))
    
    import UIKit
    import WebKit
    class ViewController: UIViewController, WKUIDelegate {
       var webView: WKWebView!
       override func viewDidLoad() {
          super.viewDidLoad()
          let myURL = URL(string:"https://www.apple.com")
          let myRequest = URLRequest(url: myURL!)
          webView.load(myRequest)
       }
       override func loadView() {
          let webConfiguration = WKWebViewConfiguration()
          webView = WKWebView(frame: .zero, configuration: webConfiguration)
          webView.uiDelegate = self
          view = webView
       }
    }