Swift WKWebView

本文详细介绍了如何在Swift中使用WKWebView,包括添加权限、导入、设置根视图、处理JS弹出框、添加加载指示器、生命周期函数、注入HTML和JavaScript、进度条实现、与前端交互以及截屏和Cookie管理等关键步骤。
摘要由CSDN通过智能技术生成

准备

添加权限

使得除了https的网站也能在iOS中运行起来
在这里插入图片描述

import

import WebKit

设置根视图

var webView: WKWebView!

override func loadView() {
   
    
    let config = WKWebViewConfiguration()
    
    webView = WKWebView(frame: .zero, configuration: config)
    webView.allowsBackForwardNavigationGestures = true
    webView.uiDelegate = self
    webView.navigationDelegate = self //就是LoadDelegate
    view = webView
}

override func viewDidLoad() {
   
    super.viewDidLoad()
    webView.load("https://www.google.com")
}

在另个WKWebView.swift里面

import UIKit
import WebKit

extension WKWebView {
   
    func load(_ string: String) {
   
        if let url = URL(string: string) {
   
            load(URLRequest(url: url))
        }
    }
}

一些方法

var webView: WKWebView!
//用于判断
webView.isLoading
webView.canGoBack
webView.canGoForward

//方法
webView.reload()
webView.reloadFromOrigin()
webView.stopLoading()
webView.goBack()
webView.goForward()

设置JS的三个弹出框为iOS原生alert

首先遵循协议

extension ViewController: WKUIDelegate {
   }

alert() 警告框

extension ViewController: WKUIDelegate {
   
	func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
   
	    let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert)
	    alert.addAction(UIAlertAction(title: "确定", style: .default, handler: {
    (_) in
	        completionHandler()
	    }))
	    present(alert, animated: true, completion: nil)
	}
}

confirm() 确认框

extension ViewController: WKUIDelegate {
   
	func webView(_ webView: WKWebView, runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (Bool) -> Void) {
   
	    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swift 中使用 WKWebView 加载绝对路径的 CSS 样式表,可以通过以下步骤来实现: 1. 将 CSS 文件添加到您的项目中。可以拖放 CSS 文件到项目导航器中的适当位置,确保将其添加到正确的目标。 2. 在您的 ViewController 类中,导入 WebKit 框架: ```swift import WebKit ``` 3. 创建一个 WKWebView 的实例,并将其添加到您的视图层次结构中: ```swift let webView = WKWebView(frame: view.bounds) view.addSubview(webView) ``` 4. 使用 `fileURLWithPath` 方法获取 CSS 文件的绝对路径,并通过 `loadFileURL` 方法加载本地 HTML 文件: ```swift if let cssURL = Bundle.main.url(forResource: "style", withExtension: "css") { let htmlPath = Bundle.main.path(forResource: "index", ofType: "html") // index.html 是您的 HTML 文件名 let htmlURL = URL(fileURLWithPath: htmlPath!) webView.loadFileURL(htmlURL, allowingReadAccessTo: cssURL) } ``` 这里假设您的 CSS 文件名为 "style.css",HTML 文件名为 "index.html"。确保将这些文件添加到您的项目中,并指定正确的文件名和扩展名。 5. 在 HTML 文件中,使用 `<link>` 标签将 CSS 样式表链接到页面上。在 `<head>` 标签内,添加以下行: ```html <link rel="stylesheet" type="text/css" href="style.css"> ``` 确保将 "style.css" 替换为您的 CSS 文件名。 这样,当 WKWebView 加载 HTML 文件时,它会自动加载链接的 CSS 样式表并应用于页面。 请注意,确保 CSS 文件和 HTML 文件位于正确的位置,并在项目目标的 Build Phases 中将它们添加到 "Copy Bundle Resources" 列表中,以便在构建时正确复制到应用程序包中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值