Check if an URL has got http:// prefix

后端 未结 8 861
野的像风
野的像风 2021-02-07 08:45


In my application, when the user add an object, can also add a link for this object and then the link can be opened in a webView.
I tried to save a link without http://

8条回答
  •  面向向阳花
    2021-02-07 09:01

    First, you should create a new category for NSURL: File > New File > Objective-C Category. You can call the category something along the lines of HTTPURLWithString, make it a category of NSURL, press next and add it to your target. Then in the NSURL+HTTPURLFromString.m implement the following message (and declare the message in your .h)

    @implementation NSURL (HTTPURLFromString)
    +(NSURL *)HTTPURLFromString:(NSString *)string
    {
        NSString *searchString = @"http";
        NSRange prefixRange = [string rangeOfString:searchString options:(NSCaseInsensitiveSearch | NSAnchoredSearch)];
    
        if (prefixRange.length == 4) {
            return [NSURL URLWithString:string];
        }
        return [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", string]];
    
    }
    @end
    

    To open a link in the WebView is simply

    NSString *urlString = @"www.google.com";
    NSURL *url = [NSURL HTTPURLFromString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView.mainFrame loadRequest:request];
    

提交回复
热议问题