Добавление встроенных возможностей поиска Google в браузер

108
8

Я пытаюсь дать моему простому браузеру возможность распознать, что текст с пробелами следует рассматривать как поисковый запрос google. Чтобы создать строку, которая может войти в URL-адрес, мне нужно заменить пробелы "+".

Я попытался сделать это в первом выражении if if, однако, когда я запускаю программу и помещаю текст с пробелами в строку поиска, ничего не происходит; вводят "google.com" или другие URL-адреса.

Что не так с моим кодом?

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];

NSString *URLString = textField.text;

NSURL *URL = [NSURL URLWithString:URLString];

if ([URLString rangeOfString:@" "].location != NSNotFound) {
NSString *plusReplace = [URLString stringByReplacingOccurrencesOfString:@" " withString:@"+"];
URL = [NSURL URLWithString:[NSString stringWithFormat:@"google.com/search?q=<%@ query", plusReplace]];

}

if (!URL.scheme) {
// The user didn't type http: or https:
URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", URLString]];
}

if (URL) {
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
[self.webView loadRequest:request];

}

return NO;

}

спросил(а) 2021-01-25T13:00:14+03:00 4 месяца, 4 недели назад
1
Решение
78

Я думаю, что у вас может возникнуть проблема с 3-м условным выполнением второго запроса. Что, если вы измените это на это?

if (URL) {
NSString *plusReplace = [URLString stringByReplacingOccurrencesOfString:@" " withString:@"+"];
URL = [NSURL URLWithString:[NSString stringWithFormat:@"google.com/search?q=<%@ query", plusReplace]];
}

if (!URL.scheme) {
// The user didn't type http: or https:
URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", URLString]];
}

NSURLRequest *request = [NSURLRequest requestWithURL:URL];
[self.webView loadRequest:request];

ответил(а) 2021-01-25T13:00:14+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема