0

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

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

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

谁能告诉我为什么?或 iOS 不使用此 url(http://maps.google.com/maps?q=%@)

4

2 回答 2

0

你会尝试不同的结局吗?例如,NSUnicodeStringEncoding

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

结果是什么

[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

?

于 2012-06-28T08:22:10.290 回答
0

Google Maps http:// 调用不使用 % 分隔符,而是使用 +'s。

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

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

于 2012-06-28T09:24:05.363 回答