我创建了我的应用程序。我需要在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?
答案 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编码。您应该只对查询字符串中的每个键的键和值进行编码。换句话说,网址编码:i
,186153149
,uo
和4
。没有其他的。 (从技术上讲,你甚至不需要对它们进行编码,因为它们都是ASCII字母数字字符集,不需要编码)