UIApplication openUrl не работает с форматированным NSString
У меня есть следующий код для открытия карт google:
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
Но это не работает, и ошибок нет. Он просто не открывается.
Ответы
Ответ 1
URLWithString требует строку с пропущенным процентом. Ваш образец url содержит пробелы, которые приводят к созданию nUR NSURL. Кроме того, адресString может также содержать символы, которые необходимо экранировать. Попробуйте выполнить процентное удаление строки url:
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
NSString *escaped = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:escaped]];
Ответ 2
Необходимо избегать urlString,
else [NSURL URLWithString: urlString] вернет нуль.
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ]];