【发布时间】:2021-01-04 01:02:06
【问题描述】:
你好 Swift 开发者!
我是快速编程的新手,几乎不需要帮助。
我正在开发一个非常简单的应用程序,它应该使用WkWebView 和自动填充它在其页面上的运输表单来简单地加载网络。
我已成功在 webView(WkWebView) 中获取页面。
首先它加载这个 url https://www.adidas.com/us,在选择商品到购物车后,它会进入这个交付页面 https://www.adidas.com/us/delivery,我们必须在其中填写 this 表单。在此之前,不需要登录信息。
我正在尝试使用 UIWebView 和 WkWebView 来完成,但无济于事,这是我的代码,UIWebView 部分已注释。
class ViewController: UIViewController, WKUIDelegate {
@IBOutlet weak var uiWebView: UIWebView!
var webView: WKWebView!
let url: String = "https://www.adidas.com/us/delivery"
let defaults = UserDefaults.standard
override func viewDidLoad() {
super.viewDidLoad()
//WKWebView programatically so it can run below iOS 11
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
if let safeUrl = URL(string: url){
let request = URLRequest(url: safeUrl)
webView.load(request)
}
// uiWebView.loadRequest(NSURLRequest(url: NSURL(string: url)! as URL) as URLRequest)
// let result = uiWebView.stringByEvaluatingJavaScript(from: "document.title")
// print("result is: \(result!)")
self.webView.evaluateJavaScript("document.getElementById('di-id-cab9a55c-9d253ce3').value = 'Hello'") { (result, error) in
print(result) //This will Print Hello
}
}
// func webViewDidFinishLoad(_ webView: UIWebView) {
//
// let email = defaults.string(forKey: "EMAIL")
// let password = defaults.string(forKey: "Pass")
//
// let fillForm = "document.getElementById('f_707d6a95-3ef9-4b76-a162-9361b4ef7d4d').value = \(password)"
// webView.stringByEvaluatingJavaScript(from: fillForm)
// }
}
还有Here'sFirst Name字段的inspect元素截图。
在此之后,我将使用用户默认值来自动填充数据。那一步我知道怎么做就卡在这里了!
我可以提供任何有用的代码 sn-p 或建议吗?我真的被困在这一点上! 提前致谢
【问题讨论】:
标签: swift swift3 wkwebview autofill userdefaults