ссылка не открывается в uiwebview - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть ссылка, как показано ниже,

https://payood.test/loofpay/XUYZGlobal/WebForms/checkoutservice%20.aspx?paymentchannel=ddd&isysid=37268474138868&amount=25&description=Transaction Из XXX & description2 = dsdsd & tunnel = & original = ZXz4kfH9fiVIZ1jWBaGjww3hgwX84CGAahlCcsKWXvs% 3d & responseUrl = http://localhost:55766/dsss/Response.aspx&hash=BE0481E5F9AA1C9F5B26A8E93A6ACAAD5888EDE9

при попытке вызвать ееошибка ниже.

fatal error: unexpectedly found nil while unwrapping an Optional value

Ниже приведен код, который я использую

link = above link....
webView.loadRequest(URLRequest(url: URL(string: link)!))

Примечание:

Если я использую простую ссылку как http://www.google.com, она работает.

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

Как уже упоминалось, проблема в том, что указанная вами ссылка на URL initializer неверна url, и из-за ! ваш код не может инициализировать URL-адрес из строки в следующем коде, и он будетcrash:

URL(string: link)!

Таким образом, вам нужно изменить строку на какой-то действительный URL-адрес , прежде чем инициализировать URL-адрес.Как это:

guard let escapedURLString = link.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) else {
    fatalError("Unknown URL string:\(link)")
}

guard let finalURL = URL(string: escapedURLString) else {
    fatalError("Can not create a url from:\(escapedURLString)")
}

print(finalURL) //to check if it works
webView.loadRequest(URLRequest(url: finalURL))
0 голосов
/ 03 декабря 2018

Я обнаружил, что URL-адрес уже закодирован, но у API есть проблемы с отправкой пробелов в URL-адресе.

Поэтому я заменяю пробелы на% 20

link = link.replacingOccurrences(of: " ", with: "%20")

Таким образом, все работает нормальноТеперь.

0 голосов
/ 03 декабря 2018

Ссылка, которую вы разместили, не является действительным URL.Это включает пробелы в вашем описании.Вы не правильно закодировали это.

...