Как справиться с неизвестной схемой, ничего не делая для веб-просмотра? - PullRequest
0 голосов
/ 28 февраля 2012
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?

1 Ответ

1 голос
/ 28 февраля 2012

Вы не указали, как выглядит пользовательский интерфейс вашего приложения или как пользователь фактически вводит URL-адрес, поэтому я просто предполагаю, что это текстовое поле, которое выглядит как то, что использует Mobile Safari.

Вы можете написать метод, который вы вызываете перед выполнением вашего вызова requestWithURL, и если вы не видите схему, предварительно привязанную к введенному пользователем URL-адресу, вы можете затем вернуть метод с добавлением http:// к нему. .

Е.Г.

- (NSString *) fullyFormedURL: (NSString *) originalURL
{
    NSRange rangeOfScheme = [originalURL rangeOfString: @"://"];
    if(rangeOfScheme.location == NSNotFound)
    {
         NSString * newURL = [NSString stringWithFormat: @"http://%@", originalURL];
    }
    return(originalURL);
}

(этот фрагмент кода выше не идеален, но предназначен для того, чтобы начать работу ... вызов rangeOfString не принимает во внимание то, что потенциально могут сделать толстые пользователи, такие как создание схемы в конце строки ... например "www.google.comhttp://")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...