UIViewController *webViewController = [[[UIViewController alloc] init] autorelease];
UIWebView *uiWebView = [[[UIWebView alloc] initWithFrame: CGRectMake(0,0,320,480)] autorelease];
NSString *urlst=[[NSString alloc]initWithString:[catWebArray objectAtIndex:indexPath.row]];
[uiWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlst]]];
uiWebView.scalesPageToFit=YES;
[webViewController.view addSubview: uiWebView];
[self.navigationController pushViewController:webViewController animated:YES];
其中数组包含诸如 www.google.com、www.yahoo.com 之类的地址。 由于这些是由用户添加的,因此 http://可能会添加也可能不会。那么我如何在 uiwebview 中加载它?
最佳答案
您没有指定应用程序的用户界面是什么样子,也没有指定用户在 URL 中实际输入的方式,因此我只是假设它是一个类似于 Mobile Safari 使用的文本字段。
您可以编写一个在执行 requestWithURL
调用之前调用的方法,如果您没有看到用户输入的 URL 前面的方案,则可以使用 http://
添加到其上。
EG
- (NSString *) fullyFormedURL: (NSString *) originalURL
{
NSRange rangeOfScheme = [originalURL rangeOfString: @"://"];
if(rangeOfScheme.location == NSNotFound)
{
NSString * newURL = [NSString stringWithFormat: @"http://%@", originalURL];
}
return(originalURL);
}
(上面的这段代码并不完美,但旨在帮助您入门... rangeOfString 调用没有考虑粗手指用户可能会做的事情,例如在末尾放置一个方案字符串...例如 "www.google.comhttp://"
)
关于ios - 如何处理未知方案,对 webview 不执行任何操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480209/