如何使用Swift在WKWebView中的网站上预填充文本框

时间:2019-05-16 18:07:21

标签: html swift xcode

我对编码比较陌生,而对使用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' ;")
    }
 }

1 个答案:

答案 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视图的方法。