Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> iOS

Cách tạo WebView trong iOS/iPhone

Để tạo WebView trong iOS, dùng WKWebView từ framework WebKit (thay thế UIWebView đã deprecated từ iOS 12, xóa hoàn toàn iOS 17).

Các bước

  1. Import WebKit.
  2. Kéo WKWebView từ Object Library vào Storyboard (hoặc tạo bằng code).
  3. Kết nối outlet: @IBOutlet weak var webView: WKWebView!.
  4. Load request trong viewDidLoad.

Code


import WebKit

class ViewController: UIViewController {
    
    @IBOutlet weak var webView: WKWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let url = URL(string: "https://www.facebook.com")!
        let request = URLRequest(url: url)
        webView.load(request)
    }
}

Cấu hình Info.plist (App Transport Security)

Mặc định iOS chặn HTTP không an toàn. Cho phép load HTTP hoặc domain cụ thể:


<key>NSAppTransportSecurity</key>
<dict>
    <!-- Cho phép tất cả HTTP (KHÔNG KHUYẾN KHÍCH cho production) -->
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    
    <!-- Hoặc cho phép domain cụ thể (An toàn hơn) -->
    <key>NSExceptionDomains</key>
    <dict>
        <key>example.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Quyền Camera/Photos (iOS 10+)

Nếu web page yêu cầu camera/mic/photo library:


<key>NSCameraUsageDescription</key><string>Cần camera cho video call</string>
<key>NSMicrophoneUsageDescription</key><string>Cần mic cho voice chat</string>
<key>NSPhotoLibraryUsageDescription</key><string>Cần chọn ảnh upload</string>

Kết quả

Cách tạo WebView trong iOS/iPhone

Mẹo nâng cao

  • Navigation Delegate: Conform WKNavigationDelegate để xử lý loading, error, redirect, decidePolicy.
  • Script Message Handler: Giao tiếp JavaScript ↔ Swift qua WKScriptMessageHandler.
  • Cookie/Session: Chia sẻ cookie với HTTPCookieStorage hoặc WKWebsiteDataStore.
  • Offline/Caching: Cấu hình URLCache cho URLSession dùng chung.