要在Swift中使用WKWebView
预先填充网站上的文本框,你需要利用JavaScript与WKWebView
的交互能力。以下是实现这一功能的基础概念和相关步骤:
UIWebView
的现代替代品,提供了更好的性能和更多的功能。WKWebView
加载目标网页。WKScriptMessageHandler
来接收来自网页的消息。import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// 创建WKWebView配置
let config = WKWebViewConfiguration()
webView = WKWebView(frame: self.view.frame, configuration: config)
webView.navigationDelegate = self
self.view.addSubview(webView)
// 加载网页
if let url = URL(string: "https://example.com") {
let request = URLRequest(url: url)
webView.load(request)
}
}
// 网页加载完成后调用
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
// 注入JavaScript代码来预先填充文本框
let jsCode = """
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].name === 'username') {
inputs[i].value = '预先填充的用户名';
}
if (inputs[i].name === 'password') {
inputs[i].value = '预先填充的密码';
}
}
"""
webView.evaluateJavaScript(jsCode, completionHandler: nil)
}
}
问题: JavaScript代码没有生效。
问题: 安全警告或阻止执行。
通过以上步骤和注意事项,你应该能够在WKWebView
中成功预先填充网站上的文本框。
领取专属 10元无门槛券
手把手带您无忧上云