2014-06-13 64 views
-3

编辑:我想出了什么是错的,但由于我是新用户,所以无法发布答案。我会尽我所能发布我的解决方案。openURL方法适用于字符串,但不适用于保存相同字符串的变量

我使用此代码打开iPhone的网络浏览器的链接:

NSString *url; 
NSLog(@"%d", [sender tag]); 
if([sender tag] == 0) 
    url = [approvedDict objectForKey:@"ig"]; 
else if([sender tag] == 1) 
    url = [approvedDict objectForKey:@"yt"]; 
else if([sender tag] == 2) 
    url = [approvedDict objectForKey:@"tw"]; 
else if([sender tag] == 3) 
    url = [approvedDict objectForKey:@"pt"]; 
else if([sender tag] == 4) 
    url = [approvedDict objectForKey:@"fb"]; 
NSLog(@"%@", url); 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]]; 

使用此代码时(这是一个按钮按下的目标行动),没有任何反应。但是,如果我将NSLog(@“%@”,url)给出的EXACT字符串放在最后一行中的“url”所在的位置。我很难理解发生了什么;任何人都有任何线索?谢谢。

+0

是,对于'url'的所有值(从你的'approvedDict')的情况下? – JoeFryer

+0

是 - 这些键都是对链接字符串的引用。 –

+1

如何知道'url'字符串中包含的内容? –

回答

0

如果url有任何特殊字符,则需要百分比转义它们。

而不是只打开这样的网址:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]]; 

添加

NSString *encodedString = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL *urlToOpen = [NSURL URLWithString: encodedString]; 
[[UIApplication sharedApplication] openURL:urlToOpen]; 
+0

网络浏览器现在打开,但Safari永远不能连接到服务器。可能还有另一个步骤? –

+0

我不知道您是否可以获得Safari无法打开链接的响应。你确定如果你手动打开相同的URL(例如:你的Mac上的Safari),它的工作原理是什么? –

相关问题