0

我有一个要求,我必须创建一个视图以在 iOS 应用程序中显示带有后退、前进和刷新按钮的网页。如何实现这个功能?

4

2 回答 2

1

使用UIWebView. 将委托设置为视图控制器。

self.webView.delegate = self;

其他显着的特性,

self.webView.scalesPageToFit = YES;

要加载 URLRequest,

[self.webView loadRequest:theRequest];

或仅对于字符串,使用

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

还有一些代表在这里。web view 有它自己的历史,你可以通过调用它的 back 和 forward 方法来使用它。

#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];
}

同样,您可以使用 stop 方法。刷新重新加载请求。在返回或前进之前,您可以检查方法 canGoBack 或 canGoForward。请参阅http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html上的文档

于 2013-07-31T08:16:55.407 回答
0

这是小菜一碟,您所需要的只是 UIWebview 组件及其代表,您需要创建一个自定义导航栏。

于 2013-07-31T08:02:57.653 回答