#objective-c #nsurl #nsurlrequest
#objective-c #nsurl #nsurlrequest
Вопрос:
У меня есть текстовое поле, в которое я могу ввести URL-адрес. Проблема в том, что если я просто введу ‘cnn.com ‘ или любой сайт без ‘http://’ впереди, страница не загружается. Есть ли способ это исправить?
Я просмотрел документацию Apple, но не смог найти нужную мне справку.
Мой код:
NSString *zzz = URLbox.text;
NSURL *url = [NSURL URLWithString:zzz];
[webBrowser loadRequest:[NSURLRequest requestWithURL:url]];
Ответ №1:
Проверьте, начинается ли входной URL (URLbox.text) с http://
или https://
, и если это не так, добавьте к нему префикс http://
.
Комментарии:
1. Спасибо, ребята! Заработало:
NSString *myURLString = URLbox.text; NSURL *myURL; if ([myURLString hasPrefix:@"http://"]) { myURL = [NSURL URLWithString:myURLString]; } else { NSString *rer = [NSString stringWithFormat:@"http://%@", myURLString]; myURL = [NSURL URLWithString:rer]; rer = URLbox.text;; NSLog(@"updated textbox"); }
Ответ №2:
URL-адрес включает схему, если только она не является относительной частью документа. cnn.com
это случайное сокращение от http://cnn.com
or http://www.cnn.com
. Браузеры обычно http://
автоматически добавляют к тому, что вы вводите в строке местоположения перед отправкой запроса.
Вы должны проверить, начинается ли строка пользователя со схемы (не обязательно просто http://
или https://
, но этого может быть достаточно в вашем случае использования) и добавить ее по умолчанию, если она отсутствует.