ios - 如何处理未知方案,对 webview 不执行任何操作?

标签 ios uiwebview

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/

相关文章:

ios - 如何将 UIBarButtonItem tintcolor 设置为非默认 UIColor

iphone - 在 iOS 中暂停/静音背景音乐

iphone - 在 iPhone 上使用 <iframe> 播放 YouTube 失败,但在 iOS 6 下的 iPad 上仍然可以使用(两者在 iOS 5 上都可以正常工作)

swift - 如何在UIwebview中保存缓存?

ios - 如何在 switch 语句中使用谓词

iphone - UIWebView 电影播放器​​被解雇的 iOS 6 错误

ios - 如何修复 UIPageViewController 页面中突出显示状态的 UIButton 延迟?

iphone - UIImagePickerController 不会停止定位服务

ios - 在 UIViewController 中覆盖 View 事件时省略 [super] 调用。影响?

javascript - 特定的 UIWebView 选择(仅整个单词/句子)