向 webview 添加 userScript
时间: 2023-12-10 20:06:09 浏览: 139
要向 webview 添加 userScript,你需要使用 `WKUserScript` 类来创建一个 JavaScript 脚本对象,然后将其添加到 `WKUserContentController` 中。具体步骤如下:
1. 创建 `WKUserScript` 对象。以下代码将创建一个简单的 JavaScript 脚本,该脚本将弹出一个对话框。
```swift
let scriptSource = "alert('Hello, world!')"
let userScript = WKUserScript(source: scriptSource, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
```
2. 获取 `WKUserContentController` 对象。
```swift
let userContentController = webView.configuration.userContentController
```
3. 将 `WKUserScript` 对象添加到 `WKUserContentController` 中。
```swift
userContentController.addUserScript(userScript)
```
4. (可选) 添加消息处理程序。如果你想在用户与页面交互时执行一些操作,可以添加消息处理程序。以下代码将创建一个名为 "foo" 的消息处理程序。
```swift
userContentController.add(self, name: "foo")
```
5. (可选) 实现 `WKScriptMessageHandler` 协议以处理消息。以下代码将在收到名为 "foo" 的消息时打印一条消息。
```swift
extension ViewController: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "foo" {
print(message.body)
}
}
}
```
注意:如果你使用的是 `UIWebView` 而不是 `WKWebView`,则应该使用 `UIWebViewDelegate` 协议的 `webView(_:shouldStartLoadWith:navigationType:)` 方法来拦截网页加载并注入 JavaScript。
阅读全文