18

我有以下代码来打开谷歌地图:

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

但它不起作用,也没有错误。它只是没有打开。

4

2 回答 2

44

URLWithString需要一个百分比转义的字符串。您的示例 url 包含导致创建 nil NSURL 的空格。此外,addressString 还可能包含需要转义的字符。首先尝试对 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]];  
于 2010-03-28T23:13:52.620 回答
5

需要转义 urlString ,否则 [NSURL URLWithString:urlString] 将返回 nill。

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ]];
于 2010-07-16T01:35:16.940 回答