откройте Safari с NSURL, используя веб-ссылку в переменной get - PullRequest
0 голосов
/ 04 мая 2011

Мне нужна открытая ссылка вида "http://www.web.com/?text=link =) http://google.ru goooooood"

message=@"http://www.web.com/?text=link+=)+http://google.ru+is+goooooood";
twitter=[NSURL URLWithString:message];
[[UIApplication sharedApplication] openURL:twitter];

Но это не работает. Safari открывает ссылку: "http://www.web.com/?text=link =)". Но мне нужен весь текст. Есть идеи?

1 Ответ

0 голосов
/ 04 мая 2011

вы должны URL кодировать ваши параметры (специальный символ в ваших патаметерах), вы можете использовать следующую функцию для кодирования URL

- (NSString *)stringByURLEncode:(NSString *)param {

    NSMutableString *tempStr = [NSMutableString stringWithString:param];
    [tempStr replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [tempStr length])];


    return [[NSString stringWithFormat:@"%@",tempStr] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

}

Ваша переменная сообщения должна выглядеть примерно так -

message=[NSString stringWithFormat:@"http://www.web.com/?text=%@",[self stringByURLEncode:@"link+=)+http://google.ru+is+goooooood"]];
...