Everytime я пытаюсь загрузить другой URL на UIWebView я получаю ту же ошибку:UIWebView не загружая новый адрес
SendDelegateMessage(NSInvocation *): delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:) failed to return after waiting 10 seconds.
Мой код о WebView, как:
@IBAction func changeUrl(sender: UIButton) {
if LEDON {
let urlStr = NSString(format: "%@/?Led=0", self.url)
let req = URLRequest(url: URL(string: urlStr as String)!)
webView.loadRequest(req)
while(webView.isLoading) {
sender.isEnabled = false
}
sender.isEnabled = true
LEDON = false;
} else {
let urlStr = NSString(format: "%@/?Led=1", self.url)
let req = URLRequest(url: URL(string: urlStr as String)!)
webView.loadRequest(req)
while(webView.isLoading) {
sender.isEnabled = false
}
sender.isEnabled = true
LEDON = true;
}
}
Если я нажму UIButton в первый раз, когда код работает отлично, но когда я снова нажимаю его, я получаю эту ошибку. Где я делаю неправильно?
переменная «url» в коде является глобальным var, и я уже проверяю, что это правильно.
Вам не нужно использовать это время (webView.isLoading) {sender.isEnabled = ложный}. Вы заморозили основной поток, и приложение не может отвечать на запросы. Для этого вам нужны методы делегата. – Sergey
Но когда цикл while завершен, отправитель снова активен. Когда я снова вызываю действие, webView не загружается, но кнопка работает. – Francesco