我有以下代码来打开谷歌地图:
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
但它不起作用,也没有错误。它只是没有打开。
我有以下代码来打开谷歌地图:
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
但它不起作用,也没有错误。它只是没有打开。
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]];
需要转义 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] ]];