首页 > 解决方案 > 如何在 WKWebView Swift 中提交表单?

问题描述

我一直在尝试使用WKWebView填写网络表单并提交。到目前为止,我已经能够做到这一点。问题是WebView一旦我使用下面的代码,表单就会从“插入元素”、“尝试提交”到“提交”无休止地循环。

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")
                }
            }
        }
    }

}
}

标签: iosswiftxcodewkwebview

解决方案


推荐阅读