UIWebview本身不像Safari一样带地址栏,只是单纯的现实web的内容,所以当自己想定制浏览器的时候就需要预留一定的高度作为地址栏,这个例子里要做如下网页效果,包含前进按钮和后退按钮,按钮会根据是否可以前进后退来决定是否可点击,还有两个按钮目前先不用:
首先做好准备工作,SingleView项目,因为要判断前进后退按钮是否可以点击,所以在每个页面刷新后都要检验一下是否当前有后退页或前进页,这里需要用到代理方法来得到页面读取完毕的时刻,故在头文件里添加协议:
@interface ViewController : UIViewController<UIWebViewDelegate,MFMailComposeViewControllerDelegate>
– (void)viewDidLoad
{
[super viewDidLoad];
rootWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 50, 1024, 698)];//头文件中已经有了UIWebView成员rootWebView了,这里空出50px给按钮
rootWebView.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];//webview的背景色就是当页面滚动的时候能看到的页面下面的底色
rootWebView.delegate=self;//设定代理方法
NSURL *url = [[ NSURL alloc ] initWithString :@”http://www.sina.com.cn”];
[ rootWebView loadRequest:[ NSURLRequest requestWithURL: url ]]; //webview的一种加载URL的方式
//NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@”third” ofType:@”html”]];
// [rootWebview loadRequest:[ NSURLRequest requestWithURL: url ]];
[self.view addSubview:rootWebView];//添加web view
}
-(IBAction)goBackFucntion:(id)sender{
if (rootWebView.canGoBack) {
[rootWebView goBack];
NSLog(@”canGOBACK”);
}else {
NSLog(@”canNot GoBack”);
}
}
-(IBAction)forWardFucntion:(id)sender{
if (rootWebView.canGoForward) {
[rootWebView goForward];
NSLog(@”canGOFORWARD”);
}else {
NSLog(@”canNot GO Forward”);
}
}
-(void)webViewDidFinishLoad:(UIWebView *)webView{
if (!rootWebView.canGoBack) {
[backButton setEnabled:NO];
}else {
[backButton setEnabled:YES];
}
if (!rootWebView.canGoForward) {
[forwardButton setEnabled:NO];
}else {
[forwardButton setEnabled:YES];
}
}