Add http:// to NSURL if it's not there

2020-03-15 05:43发布

I am using web view in my app, getting a URL from a text field. It works if the string starts with "http://". I am trying to modify the code so that it can also handle the situations where users don't enter "http://" or "https://"

How to check if the URL doesn't have "http://" in it ? How to modify the URL to add "http://" in it ?

NSString *URLString = textField.text;
NSURL *URL = [NSURL URLWithString:URLString];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
[self.webView loadRequest:request];

5条回答
做自己的国王
2楼-- · 2020-03-15 06:03

Let me update answer to Swift 4 and WKWebKit

        var urlString = "www.apple.com"

    if urlString.hasPrefix("https://") || urlString.hasPrefix("http://"){
        let myURL = URL(string: urlString)
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
    }else {
        let correctedURL = "http://\(urlString)"
        let myURL = URL(string: correctedURL)
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
    }
查看更多
Melony?
3楼-- · 2020-03-15 06:07

I solved like this, Swift 4 and up:

var yourString = "facebook.com"
var urlPath = ""
if yourString.contains(find: "https://") {
   urlPath = path
} else {
   let newPath = "https://\(path)"
   urlPath = newPath
}

guard let url = URL(string: urlPath) else {return}
UIApplication.shared.open(url)
查看更多
再贱就再见
4楼-- · 2020-03-15 06:09

Try This.

NSString *URLString = textField.text; 
 if ([URLString rangeOfString:@"http://"].location == NSNotFound && [URLString rangeOfString:@"https://"].location == NSNotFound)
  {
      URLString=[NSString stringWithFormat:@"http://%@",textField.text];
  }         
  NSURL *URL = [NSURL URLWithString:URLString];
  NSURLRequest *request = [NSURLRequest requestWithURL:URL];
 [self.webView loadRequest:request];
查看更多
家丑人穷心不美
5楼-- · 2020-03-15 06:10

Try This:

    NSString *URL = @"apple.com" ;
    NSURL *newURL ;

    if ([URL hasPrefix:@"http://"] || [URL hasPrefix:@"https://"]) {
        newURL = [NSURL URLWithString:URL] ;
    }
    else{
        newURL = [NSURL URLWithString:[NSString 
        stringWithFormat:@"http://%@",URL]] ;
    }
    NSLog(@"New URL : %@",newURL) ;
查看更多
走好不送
6楼-- · 2020-03-15 06:14
NSString *urlString = @"google.com";
NSURL *webpageUrl;

if ([urlString hasPrefix:@"http://"] || [urlString hasPrefix:@"https://"]) {
    webpageUrl = [NSURL URLWithString:urlString];
} else {
    webpageUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", urlString]];
}

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:webpageUrl];
[self.myWebView loadRequest:urlRequest];
查看更多
登录 后发表回答