我有一个要求,我必须创建一个视图以在 iOS 应用程序中显示带有后退、前进和刷新按钮的网页。如何实现这个功能?
问问题
870 次
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 回答