【问题标题】:Open URL failure in Safari在 Safari 中打开 URL 失败
【发布时间】:2010-12-30 08:19:31
【问题描述】:

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

我的代码如下:

        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 视图已打开。但是网址没有打开。它显示错误。错误是

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

但是网址是在浏览器中打开的。

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

【问题讨论】:

  • 你最好尝试使用苹果文档中的 NSURLconnection。

标签: iphone


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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

    快乐的 iCODING...

    【讨论】:

      【解决方案3】:

      很奇怪,因为 Mac 上的 Safari 没有抱怨...

      但如果你用http://itunes.apple.com/us/album/music/id186152317 替换你的网址,它似乎也可以在 iPhone 上运行。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          将编码改为“NSUTF8StringEncoding

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-04
            • 1970-01-01
            • 1970-01-01
            • 2014-04-25
            相关资源
            最近更新 更多