在WebView中打开链接

时间:2014-04-27 00:48:04

标签: ios uiwebview

我现在有一个应用程序基本上打开一个URL,具体取决于用户输入文本框的内容。这样做的逻辑是这样的:

Predetermined beginning + User Input + Predetermined End

所以基本上我的URL是3个串联字符串。现在我知道链接正在正确形成(我已将相同的代码片段放入标签中)但是当我按下按钮加载webview时没有任何反应。

当我使用下面的内容时,它完全正常,我明确地键入https://google.com

- (IBAction)btnSearchPress:(id)sender {
    [self.view endEditing:YES];
    [super viewDidLoad];
    NSString *fullURL  = @"https://google.com";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_wbView loadRequest:requestObj];
}

但是当我使用包含我的连锁网址的代码时没有任何反应:

- (IBAction)btnSearchPress:(id)sender {
    [self.view endEditing:YES];
    [super viewDidLoad];
    NSString *fullURL  = [NSString stringWithFormat:@"%@%@%@", _urlPrefix.text,_txtInput.text, _urlSuffix.text];
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_wbView loadRequest:requestObj];
}

非常感谢任何帮助。

更新:我非常确定stringWithFormat导致此问题只是不确定如何绕过它。

1 个答案:

答案 0 :(得分:1)

检查fullURL是以http://或https://开头,如果不是前缀。

- (IBAction)btnSearchPress:(id)sender {
    [self.view endEditing:YES];
    [super viewDidLoad];
    NSString *fullURL  = [NSString stringWithFormat:@"%@%@%@", _urlPrefix.text,_txtInput.text, _urlSuffix.text];

    if ( ! ([fullURL hasPrefix:@"http://"] || [ fullURL hasPrefix:@"https://"]) ) {
     fullURL = [NSString stringWithFormat:@"http://%@", fullURL ];
    }

    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_wbView loadRequest:requestObj];
}