【问题标题】:UIApplication openUrl not working with formatted NSStringUIApplication openUrl 不适用于格式化的 NSString
【发布时间】:2010-03-28 22:47:53
【问题描述】:

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

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

但它不起作用并且没有错误。就是打不开。

【问题讨论】:

    标签: iphone url iphone-sdk-3.0 uiapplication


    【解决方案1】:

    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]];  
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-08-11
        • 1970-01-01
        • 2023-03-23
        • 2014-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-07
        • 1970-01-01
        相关资源
        最近更新 更多