用safari打开收到的网址

时间:2018-01-23 10:27:28

标签: ios objective-c

我收到服务器请求的网址,我按了一个按钮,按下后,必须打开safari并转到链接, 我的代码如下:

- (IBAction)openFeedbackWebViewPresser:(id)sender {
    NSString *feedbackUrl = self.getConfig.feedbackURL;   
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString: feedbackUrl]];

}

如果我打印反馈网址,则如下所示:

https://xxx.xxxxx.com/CRM/feedback#/1715171559ae979371687#/10306

我试图用另一种方式:

 NSURL *url = [NSURL URLWithString:feedbackUrl];
    [[UIApplication sharedApplication] openURL: url];

url返回nil,知道feedbackUrl包含url。 有什么想法错了吗? 感谢

3 个答案:

答案 0 :(得分:1)

您的字符串url可能包含任何空格或必须编码的任何其他特殊字符。如下所示

 NSString *feedbackUrl = [self.getConfig.feedbackURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];   
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: feedbackUrl]];

希望它有所帮助。!!!

答案 1 :(得分:1)

由于必须编码的特殊字符,可能会发生这种情况。以下编码适用于我 -

NSString *feedbackUrl = [self.getConfig.feedbackURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];   
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: feedbackUrl]];

答案 2 :(得分:-1)

这是在浏览器中打开链接的代码,希望这个帮助

    - (IBAction)emailButton:(id)sender {

[[UIApplication sharedApplication]
 openURL:[NSURL URLWithString:self.emailLabel.text]];
    }