Вы можете использовать canOpenUrl
метод:
UIApplication.sharedApplication().canOpenURL(url)
Это будет делать проверку URL-адрес, и если ссылка нормально оно возвращает истину. Это в основном использовать перед вызовом:
UIApplication.sharedApplication().openURL(url)
, чтобы убедиться, что эта связь может быть открыт в сафари, но это должно помочь вам здесь.
Убедитесь, что ссылка начинается с http: // или https: //.
Отредактировано:
Это будет просто проверить ссылка является правильным URL.
Если вы хотите увидеть, что страница форума, вопросы авторизации и т.д. Вы можете реализовать WKNavigationDelegate
протокол и проверить этот метод:
- webView:didFailNavigation:withError:
это должно дать вам больше информации.
Это всегда хорошая идея: str.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
он не пропускает символ, который не разрешен в URL-адресе.
Edited 2: Чтобы определить код состояния можно попробовать реализовать:
- webView:decidePolicyForNavigationResponse:decisionHandler:
ответ навигации является NSURLResponse
экземпляр, но всякий раз, когда вы делаете запрос HTTP, то NSURLResponse
объект вы получите обратно на самом деле экземпляр класса NSHTTPURLResponse
, поэтому вы должны указать его на NSHTTPURLResponse
. Это должно дать вам statusCode
. В последней строке метода вы должны вызвать обработчик, например decisionHandler(WKNavigationResponsePolicyAllow)
.
сделал вас попробуйте зашифровать URL-адрес, прежде чем вы сделаете запрос, чтобы избежать сломанных символов, таких как пробелы и «#» .. и т. д. –
@Manch. Как мне сделать эту часть шифрования? – confile
Извините, я имею в виду кодирование URL-адреса, поэтому взгляните на это threa d http://stackoverflow.com/a/24552028/4194908 –