我在常规NSStrings中存储用户的网站地址 有些是“www.somewebsite.com”,有些是“http://somewebsiteothersite.org”。
我的应用应该打开一个UIWebView并打开该网页:
NSURLRequest *requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:[self websiteString]]];
NSLog(@"visiting: %@",websiteString);
[webView loadRequest:requestObj];
但是如果省略http://
,UIWebView将无法打开页面。
是否存在为UIWebView正确构建NSURL的下降方法?
谢谢!
答案 0 :(得分:1)
如果不存在,请添加http://
if (![urlStr hasPrefix:@"http://"] && ![urlStr hasPrefix:@"https://"]) {
urlStr = [@"http://" stringByAppendingString:urlStr];
}
谨防那些意图没有http://
的链接,例如ftp://
或mailto:
答案 1 :(得分:0)
我知道Mathiass回答得更快,但我想分享一个类似的解决方案
//first detect if your string has contains http:// if not add http:// to your string
NSMutableString *websiteString = @"www.x.com";
if ([websiteString rangeOfString:@"http://"].location == NSNotFound) {
NSLog(@"contains http:// == false");
websiteString = [@"http://" stringByAppendingString:websiteString];
} else {
NSLog(@"contains http:// == true");
}
NSURLRequest *requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:[self websiteString]]];
NSLog(@"visiting: %@",websiteString);
[webView loadRequest:requestObj];