Как заполнить поля в HTML-форме, которая в настоящее время представлена в веб-представлении?Целью этого приложения является автоматический вход на веб-сайт.Основываясь на разных уроках, я в основном скопировал быстрый код, но мой не работает .Было бы замечательно получить подсказку о том, в чем может быть ошибка, или даже совершенно иной подход.
Важные части веб-сайта Я хочу войти, построено так:
текстовое поле Имя пользователя:
<input type="text" class="form-control" name="username" id="username" placeholder="Username:">
текстовое поле Пароль:
<input type="password" class="form-control" name="password" id="password" maxlength="20" placeholder="Passwort:">
Кнопка входа в систему (для входа в систему):
<input type="submit" value="login" class="btn btn-default">
Мой сломанный swift-код из ViewController.swift :
Он просто загружает сайт, но без ввода имени пользователя или пароля и без отправки.
@IBOutlet weak var MyWebView: UIWebView!
func webViewDidFinishLoad(MyWebView: UIWebView) {
// fill data
let savedUsername = "USERNAME"
let savedPassword = "PASSWORD"
let fillForm = String(format: "document.getElementById('username').value = '\(savedUsername)';document.getElementById('password').value = '\(savedPassword)';")
MyWebView.stringByEvaluatingJavaScript(from: fillForm)
//submit form
let deadlineTime = DispatchTime.now() + .seconds(1)
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
MyWebView.stringByEvaluatingJavaScript(from: "document.value[\"login\"].submit();")
}
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL (string: "https://www.austrocontrol.at/flugwetter/")
MyWebView.loadRequest(URLRequest(url: url!))
webViewDidFinishLoad(MyWebView: MyWebView)
}
Я не уверен, как справиться с этим выводом, который я получил из Xcode-симулятора, но, возможно, это поможет каким-то образом:
[...] Starting WebFilter logging for process AustroControl Viewer
[...] _userSettingsForUser : (null)
[...] _WebFilterIsActive returning: NO
[...] [MediaRemote] [AVOutputContext] WARNING: AVF context unavailable for +[MRAVOutputContext sharedAudioPresentationContext]_block_invoke
[...] [MediaRemote] [AVOutputContext] WARNING: AVF context unavailable for +[MRAVOutputContext createOutputContextWithUniqueIdentifier:]