Как отправить форму в WKWebView Swift? - PullRequest
1 голос
/ 22 января 2020

Я пытался использовать WKWebView для заполнения веб-формы и отправки. До сих пор я был в состоянии сделать это. Проблема заключается в том, что WebView форма l oop бесконечно от "вставить элемент", пытаясь отправить "на" отправлено ", как только я использовал следующий код.

let submitFunction = document.forms[0].submit();

Кто-нибудь знает, что происходит? Как можно переписать этот код?

Большое спасибо!

import UIKit
import WebKit
class AnswerVC: UIViewController {

@IBOutlet weak var webView: WKWebView!

var questionText = "1+1"

override func viewDidLoad() {
    super.viewDidLoad()
    webView.navigationDelegate = self
}

override func viewWillAppear(_ animated: Bool) {
    let url:URL = URL(string: "https://gamma.sympy.org/")!
    let urlRequest:URLRequest = URLRequest(url: url)
    webView.load(urlRequest)
}
}

extension AnswerVC: WKNavigationDelegate {

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

    print("insert element")

    let scriptFunction = "document.getElementById('id_i').value = '\(questionText)';"
    webView.evaluateJavaScript(scriptFunction) { (result, error) in

        if error != nil {

            ProgressHUD.showError(error as? String)

        } else {

            print("trying to submit")
            let submitFunction = "document.forms[0].submit();"
            webView.evaluateJavaScript(submitFunction) { (result, error) in
                if error != nil {
                    print(error?.localizedDescription)

                } else {
                    print("submited")
                }
            }
        }
    }

}
}
...