Programing

Swift의 UIWebView에서 URL을로드하는 방법은 무엇입니까?

lottogame 2020. 12. 3. 07:24
반응형

Swift의 UIWebView에서 URL을로드하는 방법은 무엇입니까?


다음 코드가 있습니다.

UIWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")))

다음과 같은 오류가 발생합니다.

'NSURLRequest'는 UIWebView로 변환 할 수 없습니다.

문제가 무엇인지 아십니까?


loadRequest : 는 클래스 메서드가 아니라 인스턴스 메서드입니다. 클래스 자체가 아니라 수신자로 UIWebview의 인스턴스를 사용하여이 메서드를 호출해야합니다.

webviewInstance.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))

그러나 @radex가 아래에서 올바르게 지적했듯이 다음과 같은 함수를 호출하기 위해 currying을 활용할 수도 있습니다.

UIWebView.loadRequest(webviewInstance)(NSURLRequest(URL: NSURL(string: "google.ca")!))   

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.
}

이 시도:

  1. View에 UIWebView를 추가합니다.

  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)
    }
    

그리고 앱을 실행하세요 !!


Swift 3는 URL과 URLRequest에서 더 이상 NS 접두사를 사용하지 않으므로 업데이트 된 코드는 다음과 같습니다.

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

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추가하고 다음 값을 추가해야합니다.

Info.plist


스위프트 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)

        }

스위프트 3

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

WebView에 URL을로드하는 것은 매우 쉽습니다. 스토리 보드에 WebView를 만들고 다음 코드를 사용하여 URL을로드 할 수 있습니다.

    let url = NSURL (string: "https://www.simplifiedios.net");
    let request = NSURLRequest(URL: url!);
    webView.loadRequest(request);

3 줄의 코드로 간단합니다. :)

참조 : UIWebView 예제


UIWebView loadRequest : NSURL 개체를 사용하여 NSURLRequest를 만든 다음 요청을 전달하면 요청 된 uiwebviewURL이 웹보기에로드됩니다.

 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)
  }

더 많은 참고를 위해 :

http://sourcefreeze.com/uiwebview-example-using-swift-in-ios/


Swift Language에서 Webview 사용

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

쉽고, 테스트 및 작동 100 %

웹킷 가져 오기 :

import WebKit

Webview에 IBOutlet을 할당합니다.

var webView : WKWebView!

대리자 설정 :

class ViewController: UIViewController , WKNavigationDelegate{

viewDidLoad ()에 코드를 작성합니다.

// loading URL :
let myBlog = "https://stackoverflow.com/users/4600136/mr-javed-multani?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)

대리자 메서드 작성 :

//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 3.1 이상

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

신속한 4.2

@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 Update 프로그래밍 방식으로 WebView 생성.

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)
}}

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)
    
      }
    
    }
    
  3. 임의로드 허용 true info.plist 허용

      <key>NSAppTransportSecurity</key>
         <dict>
           <key>Allow Arbitrary Loads</key>
              <true/>
        </dict>
    

    info.plist는 다음과 같이 보입니다.

여기에 이미지 설명 입력


import UIKit

class ViewController: UIViewController{

@IBOutlet weak var webView: UIWebView!



override func viewDidLoad() {
   super.viewDidLoad()
       //Func Gose Here 
      loadUrl()

   } 
 func loadUrl(){

   let url = URL(string: "Url which you want to load(www.google.com)")
   let requestObj = URLRequest(url: url! as URL)
   webView.load(requestObj)
 }

}

이 시도

let url = NSURL (string: "http://www.apple.com");
myWebView.loadRequest(NSURLRequest(URL: url!));

참고 URL : https://stackoverflow.com/questions/25597092/how-to-load-url-in-uiwebview-in-swift

반응형