2014-06-13 102 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),它的工作原理是什麼? –

相關問題