为什么用openURL打开谷歌地图找不到地址

时间:2012-06-28 08:13:08

标签: ios google-maps openurl

我创建了一个UITextView并设置了text = @“中国,浙江省杭州市滨江区”, set dataDetectorTypes = UIDataDetectorTypeAddress, 然后,长按,选择打开地图,它可以在GoogleMap中找到地址。

但是,同样的地址,我用openUrl找不到地址。

NSString *urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];

任何能告诉我原因的人?或iOS不使用此网址(http://maps.google.com/maps?q=%@)

2 个答案:

答案 0 :(得分:0)

您会尝试使用其他编码吗?例如,UnicodeString编码

 NSString *urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", [address stringByAddingPercentEscapesUsingEncoding:NSUnicodeStringEncoding]]; 

的结果是什么?
[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

答案 1 :(得分:0)

谷歌地图http://调用不使用%分隔符,而是+。

NSString *fixedAddress = [fullAddress stringByReplacingOccurencesOfString:@" " withString:@"+"];
NSString *googleCall = @"http://maps.google.com/maps?q=";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[googleCall stringByAppendingString:fixedAddress]]];

我,我自己遇到了这个问题,并在昨晚使用前面的代码修复了它。