我对编码比较陌生,而对使用Swift则非常陌生。我正在尝试创建一些东西,以便我的用户可以在设置中设置用户名和密码,并使该信息预先填充我已设置的WKWebView的登录页面。目前,我只是在尝试获取快速代码以将信息发送到文本字段。
除了几年前的一两个堆栈帖子外,我找不到更多的相关信息,但它们似乎对我没有用。
根据我所读的内容,我需要获取一些Javascript才能执行以填充这些区域,但我正在做的似乎没有任何作用。我将迅速发布一些我正在使用的测试代码。如果有人可以告诉我我做错了什么,或者我只是缺少明显的东西,将不胜感激。
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var WebView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL (string: "https://www.google.com")
let request = URLRequest(url: url!)
WebView.load(request)
}
func webViewDidFinishLoad(webView: WKWebView!) {
webView.evaluateJavaScript("document.getElementById('q').value = 'Hello' ;")
}
}
答案 0 :(得分:0)
建议您可以像这样使用
// let source = "document.body.style.background = \"#777\";"
let source = "document.getElementById('q').value = 'Hello' ;"
let userScript = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
let userContentController = WKUserContentController()
userContentController.addUserScript(userScript)
let configuration = WKWebViewConfiguration()
configuration.userContentController = userContentController
webView = WKWebView(frame: self.view.bounds, configuration: configuration)
view.addSubview(webView)
let url = URL (string: "https://www.google.com")
let request = URLRequest(url: url!)
webView.load(request)
as Apple said,一个WKUserContentController对象为JavaScript提供了一种发布消息并将用户脚本注入Web视图的方法。