2013-07-31 3 views
0

У меня было требование: мне нужно создать представление для отображения веб-страниц с помощью кнопки «назад», «вперед» и «Обновить» в приложении iOS. как реализовать эту функциональность?создать реализацию браузера InApp в приложении iOS

+0

Вы можете использовать Kendo UI mobile - структуру Javascript и HTML5, которая позволяет создавать собственные приложения для нескольких мобильных платформ, включая iOS. ссылка: http://www.kendoui.com/mobile.aspx – azimov

ответ

1

Использование UIWebView. Установите делегата в контроллер вида.

self.webView.delegate = self; 

Другие замечательные свойства,

self.webView.scalesPageToFit = YES; 

Чтобы загрузить URLRequest,

[self.webView loadRequest:theRequest]; 

или только строки, используйте

[self.webView loadHTMLString:htmlString baseURL:nil]; 

и некоторые делегаты здесь. веб-представление имеет свою собственную историю, вы можете использовать его, вызывая его обратно и вперед методы.

#pragma mark - UIWebView delegate 

// You can handle your own url scheme or let the web view handle it. 
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request 
     navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSLog(@"url=%@, %@, %@", 
      request.URL, request.URL.query, request.URL.host); 

    if (navigationType == UIWebViewNavigationTypeLinkClicked) {  
     if ([request.URL.scheme compare:@"customescheme"] == NSOrderedSame) { 
      if ([request.URL.host compare:kSomethingDotCom] == NSOrderedSame) { 
       [self mymethod]; 
      } else if ([request.URL.host compare:kAnotherDotCom] == NSOrderedSame) { 
       [self method2]; 
      } else { 
       NSLog(@"Unsupported service."); 
      } 
      return NO; 
     } 
    } 
    return YES; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [_activityIndicator stopAnimating]; 
} 

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
    [_activityIndicator stopAnimating]; 
    [Resources showAlert:@"Could not load." withTitle:@"Error!"]; 
    NSLog(@"%@", [error localizedDescription]); 
} 

#pragma mark - Actions 

- (IBAction)didPressBackButton:(id)sender 
{ 
    [_webView goBack]; 
} 

- (IBAction)didPressForwardButton:(id)sender 
{ 
    [_webView goForward]; 
} 

Аналогичным образом вы можете использовать метод остановки. Чтобы обновить, перезагрузите запрос еще раз. Перед возвратом или пересылкой вы можете проверить методы canGoBack или canGoForward. См. Документы в, http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html

+0

Отличный ответ, я реализовал первые 2 метода из UIWebViewDelegate, но ничего не происходит, эти методы не вызываются (у меня есть гиперссылка в index.html) , ты знаешь почему? – sAguinaga

+1

Вы установили делегат, self.webView.delegate = self; или что-то вроде этого ... – karim

+0

Вот и все. Он работает сейчас! – sAguinaga

0

Это кусок торта, все что вам нужно - это компонент UIWebview и его делегаты, и вам нужно создать настраиваемую панель навигации, которая есть.

 Смежные вопросы

  • Нет связанных вопросов^_^