iOS开发中WebView的使用
在AppDelegate.m文件中
01.
#
import
"AppDelegate.h"
02.
#
import
"webTableViewController.h"
03.
@implementation
AppDelegate
04.
05.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
06.
{
07.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
08.
// Override point for customization after application launch.
09.
self.window.backgroundColor = [UIColor whiteColor];
10.
webTableViewController *web = [[webTableViewController alloc]init];
11.
self.window.rootViewController = web;
12.
[self.window makeKeyAndVisible];
13.
return
YES;
14.
}
新键一个类命名为webTableViewController
webTableViewController.h
01.
#
import
<UIKit/UIKit.h>
02.
03.
@interface
webTableViewController : UIViewController<UIWebViewDelegate>
04.
{
05.
IBOutlet UIWebView *webView;
06.
07.
UIActivityIndicatorView *activityIndicatorView;
08.
UIView *opaqueView;
09.
}
10.
11.
@end
webTableViewController.m
01.
#
import
"webTableViewController.h"
02.
03.
@interface
webTableViewController ()
04.
05.
@end
06.
07.
@implementation
webTableViewController
08.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
09.
{
10.
self = [
super
initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
11.
if
(self) {
12.
// Custom initialization
13.
}
14.
return
self;
15.
}
16.
17.
- (
void
)viewDidLoad
18.
{
19.
[
super
viewDidLoad];
20.
webView = [[UIWebView alloc]initWithFrame:CGRectMake(
0
,
44
,
320
,
440
)];
21.
[webView setUserInteractionEnabled:YES];
//是否支持交互
22.
//[webView setDelegate:self];
23.
webView.delegate=self;
24.
[webView setOpaque:NO];
//opaque是不透明的意思
25.
[webView setScalesPageToFit:YES];
//自动缩放以适应屏幕
26.
[self.view addSubview:webView];
27.
28.
//加载网页的方式
29.
//1.创建并加载远程网页
30.
NSURL *url = [NSURL URLWithString:@
"http://www.csdn.com"
];
31.
[webView loadRequest:[NSURLRequest requestWithURL:url]];
32.
//2.加载本地文件资源
33.
/* NSURL *url = [NSURL fileURLWithPath:filePath];
34.
NSURLRequest *request = [NSURLRequest requestWithURL:url];
35.
[webView loadRequest:request];*/
36.
//3.读入一个HTML,直接写入一个HTML代码
37.
//NSString *htmlPath = [[[NSBundle mainBundle]bundlePath]stringByAppendingString:@"webapp/test.html"];
38.
//NSString *htmlString = [NSString stringWithContentsOfURL:htmlPath encoding:NSUTF8StringEncoding error:NULL];
39.
//[webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];
40.
41.
opaqueView = [[UIView alloc]initWithFrame:CGRectMake(
0
,
0
,
320
,
480
)];
42.
activityIndicatorView = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(
0
,
0
,
320
,
480
)];
43.
[activityIndicatorView setCenter:opaqueView.center];
44.
[activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
45.
[opaqueView setBackgroundColor:[UIColor blackColor]];
46.
[opaqueView setAlpha:
0.6
];
47.
[self.view addSubview:opaqueView];
48.
[opaqueView addSubview:activityIndicatorView];
49.
50.
51.
}
52.
53.
-(
void
)webViewDidStartLoad:(UIWebView *)webView{
54.
[activityIndicatorView startAnimating];
55.
opaqueView.hidden = NO;
56.
}
57.
58.
-(
void
)webViewDidFinishLoad:(UIWebView *)webView{
59.
[activityIndicatorView startAnimating];
60.
opaqueView.hidden = YES;
61.
}
62.
63.
//UIWebView如何判断 HTTP 404 等错误
64.
-(
void
)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
65.
NSURL *url = [NSURL URLWithString:@
"http://www.csdn.com"
];
66.
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
67.
if
((([httpResponse statusCode]/
100
) ==
2
)) {
68.
// self.earthquakeData = [NSMutableData data];
69.
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
70.
71.
[ webView loadRequest:[ NSURLRequest requestWithURL: url]];
72.
webView.delegate = self;
73.
}
else
{
74.
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:
75.
NSLocalizedString(@
"HTTP Error"
,
76.
@
"Error message displayed when receving a connection error."
)
77.
forKey:NSLocalizedDescriptionKey];
78.
NSError *error = [NSError errorWithDomain:@
"HTTP"
code:[httpResponse statusCode] userInfo:userInfo];
79.
80.
if
([error code] ==
404
) {
81.
NSLog(@
"xx"
);
82.
webView.hidden = YES;
83.
}
84.
85.
}
86.
}
87.
- (
void
)didReceiveMemoryWarning
88.
{
89.
[
super
didReceiveMemoryWarning];
90.
// Dispose of any resources that can be recreated.
91.
}
92.
93.
@end