在Safari中打开URL失败

时间:2010-12-30 08:19:31

标签: iphone

我创建了我的应用程序。我需要在iPhone,safari视图中直接打开URL。

我的代码如下:

        NSString *email = [NSString stringWithFormat:@"http://itunes.apple.com/us/album/music/id186152317?i=186153149&uo=4"];
         email = [email stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
         NSURL *url = [NSURL URLWithString:email];
         if (![[UIApplication sharedApplication] openURL:url])
         NSLog(@"%@%@",@"Failed to open url:",[url description]);
         [super viewDidLoad];

但我的问题是,Safari视图已打开。但是URL未打开。它显示错误。错误是

  

无法打开页面safari无法打开页面,因为地址无效

但是URL是在浏览器中打开的。

是否有人知道解决方案,使用Objective C在iPhone中的Safari中打开此URL?

5 个答案:

答案 0 :(得分:1)

您可以使用http://itunes.apple.com/linkmaker/获取准确的链接。希望有帮助

答案 1 :(得分:0)

将编码更改为“NSUTF8StringEncoding

答案 2 :(得分:0)

还要检查完成编码后的链接

http://itunes.apple.com/us/album/music/id186152317?i=186153149& UO = 4

更改为

http://itunes.apple.com/us/album/music/id186152317?i=186153149& IGN-MPT = UO%3D4

hAPPy iCODING ...

答案 3 :(得分:0)

奇怪,因为Mac上的Safari不会抱怨...

但是,如果你用http://itunes.apple.com/us/album/music/id186152317替换你的网址,它似乎也适用于iPhone。

答案 4 :(得分:0)

您的问题是您不应该对整个网址进行URL编码。您应该只对查询字符串中的每个键的键和值进行编码。换句话说,网址编码:i186153149uo4。没有其他的。 (从技术上讲,你甚至不需要对它们进行编码,因为它们都是ASCII字母数字字符集,不需要编码)