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

Use*_*ser 63 swift ios8

我有以下代码:

UIWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'NSURLRequest'无法转换为UIWebView.

知道问题是什么吗?

Mic*_*lum 58

loadRequest:是一个实例方法,而不是类方法.您应该尝试使用UIWebview实例作为接收器而不是类本身来调用此方法.

webviewInstance.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))
Run Code Online (Sandbox Code Playgroud)

但是,正如@radex在下面正确指出的那样,你也可以利用currying来调用这个函数:

UIWebView.loadRequest(webviewInstance)(NSURLRequest(URL: NSURL(string: "google.ca")!))   
Run Code Online (Sandbox Code Playgroud)

  • @ 0x7fffffff不是错误.Swift中的实例方法是curried类方法,它将实例对象作为幕后的第一个参数.从本质上讲,你可以说`UIWebView.loadRequest(webviewInstance)(...)` (3认同)
  • Swift 3版本:`webviewInstance.loadRequest(NSURLRequest(url:NSURL(string:"google.ca")!作为URL)作为URLRequest)` (2认同)

har*_*bar 32

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


Nag*_*jun 27

试试这个:

  1. 将UIWebView添加到View.

  2. 使用助理编辑器连接UIWebview插座并命名您的"webview".

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

并运行应用程序!


xsc*_*der 10

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

let url = URL(string: "your_url_here")
yourWebView.loadRequest(URLRequest(url: url!))
Run Code Online (Sandbox Code Playgroud)


Cam*_*gón 8

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

请记住添加权限Info.plist,添加以下值:

的Info.plist


Ena*_*que 6

在 Swift 4 或 4.2 你可以使用像:

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

     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)
    
      }
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. Allow Allow Arbitrary Loads true info.plist

      <key>NSAppTransportSecurity</key>
         <dict>
           <key>Allow Arbitrary Loads</key>
              <true/>
        </dict>
    
    Run Code Online (Sandbox Code Playgroud)

    注意 info.plist 将如下所示

在此处输入图片说明


Moh*_*our 5

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)

        }
Run Code Online (Sandbox Code Playgroud)


Mar*_*cas 5

斯威夫特3

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


Mr.*_*ani 5

简单、经过测试且 100% 有效

导入网络工具包:

import WebKit
Run Code Online (Sandbox Code Playgroud)

将 IBOutlet 分配给 webview:

var webView : WKWebView!
Run Code Online (Sandbox Code Playgroud)

设置委托:

class ViewController: UIViewController , WKNavigationDelegate{
Run Code Online (Sandbox Code Playgroud)

在viewDidLoad()上编写代码:

// loading URL :
let myBlog = "/sf/users/322009551/?tab=profile"
let url = NSURL(string: myBlog)
    let request = NSURLRequest(url: url! as URL)

    // init and load request in webview.
    webView = WKWebView(frame: self.view.frame)
    webView.navigationDelegate = self
    webView.load(request as URLRequest)
    self.view.addSubview(webView)
    self.view.sendSubview(toBack: webView)
Run Code Online (Sandbox Code Playgroud)

编写委托方法:

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

看起来像: 在此输入图像描述


Our*_*han 5

在迅速5

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