Откройте веб-поиск Google в Safari в приложении iphone - PullRequest
2 голосов
/ 03 января 2011

Я хочу, чтобы веб-поиск Google открывался в Safari по определенному поисковому запросу, установленному приложением. Я знаю метод openURL и уже использовал его, но не могу открыть пользовательский поиск в Safari.

Это код, который я получил до сих пор

NSString *searchTerm = [NSString stringWithFormat:@"Soccer World Cup"];
searchTerm = [searchTerm stringByReplacingOccurrencesOfString:@" " withString:@"+"];
NSString *url = [NSString stringWithFormat:@"http://www.google.com/#sclient=psy&hl=en&site=&source=hp&q=%@&aq=f&aqi=&aql=&oq=&gs_rfai=&pbx=1&fp=a20cfd04ba3c5cf9",searchTerm];

NSURL *googleURL = [NSURL URLWithString:url];

if(![[UIApplication sharedApplication] openURL:googleURL]){
    NSLog(@"Failed to open URL");
}

Этот код в конечном итоге открывает Google в Safari, но без поискового запроса

Любая помощь будет оценена! Спасибо

Ответы [ 2 ]

3 голосов
/ 04 января 2011

# определяет фрагмент URL и обычно используется для перехода к определенной именованной привязке на странице.Некоторые серверы обрабатывают эту информацию, но это редко.

Вы хотите использовать ? вместо того, чтобы запустить параметры запроса URL

http://www.google.com/?sclient=....
1 голос
/ 04 января 2011

Похоже, ваш URL неверен. Откройте Safari на вашем Iphone и выполните поиск в поле поиска Google. Скопируйте URL из этого. Чтобы быть более конкретным, ваш URL, вероятно, должен начинаться так: http://www.google.com/search? (обратите внимание на знак вопроса, который сигнализирует о начале параметров в вашем URL). Каждый параметр - это пара имя-значение, например, source=hp в вашем собственном примере кода. Эти пары разделяются символом &. Большинство параметров в вашем примере кода, вероятно, можно пропустить.

Во-вторых, вам нужно заменить больше, чем просто пробелы в поисковом запросе (вам необходимо его кодировать).

...