Làm việc với WebView sử dụng WKWebView phần 1

Hướng dẫn cách xây dựng Webview với WKWebView

Sử dụng web view không còn là gì mới mẽ cả, nhiều năm trước đây chúng ta có thể sử dụng UIWebView một cách rất đơn giản . Nhưng đến với WKWebView trên IOS 8 , chúng ta có nhiều thứ khá hay ho để học.

Hôm nay mình sẽ hướng dẫn cách đơn giản để load một Webview từ Html và Url

Dưới đây là ảnh demo WebView mà chúng ta sẽ làm

Bước 1. Import Framework

Mở ViewController.swift và thêm dòng import WebKit vào bên dưới dòng import UIKit .

Bước 2. Khai báo

Khai báo Webview

var webView : WKWebView!

Bước 3. Khởi tạo Webview

Ở đây chúng ta sẽ override lại func loadView , và khởi tạo WebView ở tại đây

override  func  loadView\(\) {

        webView = WKWebView\(\)

        webView.uiDelegate = self

        view = webView

}

Đến đây chắc sẽ có báo lỗi, cách fix đơn giản đó là bạn hãy thêm WKUIDelegate vào sau UIViewController

class   ViewController  :  UIViewController,  WKUIDelegate  {

Bước 4.1 Load web từ URL

Đến đây thì có 2 cách để load một trang web.

Thứ nhất : Load từ link URL

Thứ hai : Load từ code HTML

Ở đây mình sẽ hướng dẫn theo cả 2 cách.

Bạn hãy thêm 3 dòng code bên dưới vào viewDidLoad.

        let  myURL = URL (string: " https://www.apple.com " )

        let myRequest = URLRequest(url: myURL!)

        webView.load(myRequest)

Hãy nhìn vào 3 dòng code trên, dòng đầu tiên là định nghĩa một URL từ string.Dòng kế tiếp là khởi tạo một URLRequest từ URL đã tạo trước đó, Sau đó thực hiện load Web từ URLRequest đó.

Bước 4.2 Load web từ HTML

Cách thứ 2 để load web từ webview đó chính là Load từ Local HTML, chúng ta sẽ sử dụng hàm loadHTMLString để thực hiện điều đó :

webView.loadHTMLString("<html><body>"
        + "<p><a href=\"http://samwize.com\">http://samwize.com</a></p>"
        + "</body></html>", baseURL: nil)

Đến đây các bạn đã có thể Run để xem trang web của mình đã được load lên WebView

Bước 5 Warning

Có một điều các bạn lưu ý là để đảm bảo tính bảo mật, thì WebKit này chỉ cho bạn load những link HTTPS , nghĩa là những link HTTP sẽ không thể load được. Vì vậy nếu muốn load được các link http chúng ta phải làm thêm những bước sau

  1. Mở info.list
  2. Thêm App Transport Security Settings

      i . Key : Allow Arbitrary Loads -- Value : Yes
    
      ii.  Key : Exception Domains
    

Đến đây bạn có thể Run App và có thể xem WebView đã được load lên.

Dưới đây là source code :

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.load(myRequest)

   }

}

Người viết : Nguyễn Khánh Hưng

results matching ""

    No results matching ""