Web网页里的HTML链接的处理和界面的跳转
2015-01-05 09:35
393 查看
Web网页里的HTML链接的处理和界面的跳转
序言:灵活的触摸处理也是UIWebView中的强项。对此,我们也可以开发基于HTML代码的应用程序。
正文:
第一:
我们要创建一个UIWebView的对象。代码:
UIWebView*_ZSJwebView;
第二:
我们初始化我们创建的UIwebView的对象_ZSJwebView,代码如下;
_ZSJwebView=[[UIWebView alloc]initWithFrame:self.view.frame]; _ZSJwebView.delegate=self; _ZSJwebView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; // _ZSJwebView.dataDetectorTypes=UIDataDetectorTypeAll; [self.view addSubview:_ZSJwebView];
第三步:
我们写加载HTML文件的私有方法、。
//读入指定的HTML文件的私有方法 -(void)loadHTMLField:(NSString*)path { NSArray*compArr=[path pathComponents]; NSLog(@"%@",compArr); NSString*resourStr=[compArr lastObject]; NSLog(@"%@",resourStr); NSString*absolutepath; if (absolutepath =[[NSBundle mainBundle] pathForResource:resourStr ofType:nil]) { NSData*data=[NSData dataWithContentsOfFile:absolutepath]; [_ZSJwebView loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:nil]; }else { NSLog(@"%@ not font",resourStr); } }
第四步:
我们处理触摸后的跳转。代码:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ //触摸链接后,进入href属性为URL的下一个画面。 if ( UIWebViewNavigationTypeLinkClicked==navigationType) { NSString*url=[[request URL] path]; [self loadHTMLField:url]; return FALSE; } return TRUE; }
第五步:
我们要设定首次,加载的网页。代码:
//画面显示后,首先显示top。htm -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self loadHTMLField:@"top.htm"]; }
第六步:
我们还要写两个HTML 文件。
文件一、
[top.htm]
<html> <head> <title>首页</title> <meta charset=@"utf-8"> <meta name="岁月风沙" content="width=device-width"/> </head> <body> <h1>三个美女</h1> <hr/> <h2>准备要哪个美女</h2> <o1> <li /><a href="page1.htm">刘亦菲</a> <li /><a href="page2.htm">范冰冰</a> <li /><a href="page3.htm">何洁</a> </o1> </body> </html>文件二、
[page1.htm]
<html> <head> <title>刘亦菲美女</title> <meta charset=@"utf-8"> <meta name="岁月风沙" content="width=device-width"/> </head> <body> <h1>刘亦菲</h1> <hr/> <h2> 哪个美女,你都别想要!</h2> <o1> <li /><a href="top.htm">返回</a> </o1> </body> </html>
第六步:
效果展示:
完整代码:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIWebViewDelegate>
{
UIWebView*_ZSJwebView;
UIActivityIndicatorView*_ZSJActivity;
}
@end
#import "ViewController.h"
#import "Mylabel.h"
@implementation ViewController
-(void)viewDidLoad{
_ZSJwebView=[[UIWebView alloc]initWithFrame:self.view.frame]; _ZSJwebView.delegate=self; _ZSJwebView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; // _ZSJwebView.dataDetectorTypes=UIDataDetectorTypeAll; [self.view addSubview:_ZSJwebView];
_ZSJActivity=[[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
UIBarButtonItem*indicator=[[UIBarButtonItem alloc]initWithCustomView:_ZSJActivity];
UIBarButtonItem*adjustment=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSArray*buttons=[NSArray arrayWithObjects:adjustment,indicator,adjustment, nil];
[self setToolbarItems:buttons animated:YES];
}
//读入指定的HTML文件的私有方法 -(void)loadHTMLField:(NSString*)path { NSArray*compArr=[path pathComponents]; NSLog(@"%@",compArr); NSString*resourStr=[compArr lastObject]; NSLog(@"%@",resourStr); NSString*absolutepath; if (absolutepath =[[NSBundle mainBundle] pathForResource:resourStr ofType:nil]) { NSData*data=[NSData dataWithContentsOfFile:absolutepath]; [_ZSJwebView loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:nil]; }else { NSLog(@"%@ not font",resourStr); } }
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ //触摸链接后,进入href属性为URL的下一个画面。 if ( UIWebViewNavigationTypeLinkClicked==navigationType) { NSString*url=[[request URL] path]; [self loadHTMLField:url]; return FALSE; } return TRUE; }
//画面显示后,首先显示top。htm -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self loadHTMLField:@"top.htm"]; } @end
【top.htm】
<html> <head> <title>首页</title> <meta charset=@"utf-8"> <meta name="岁月风沙" content="width=device-width"/> </head> <body> <h1>三个美女</h1> <hr/> <h2>准备要哪个美女</h2> <o1> <li /><a href="page1.htm">刘亦菲</a> <li /><a href="page2.htm">范冰冰</a> <li /><a href="page3.htm">何洁</a> </o1> </body> </html>
【page1.htm】
<html> <head> <title>刘亦菲美女</title> <meta charset=@"utf-8"> <meta name="岁月风沙" content="width=device-width"/> </head> <body> <h1>刘亦菲</h1> <hr/> <h2> 哪个美女,你都别想要!</h2> <o1> <li /><a href="top.htm">返回</a> </o1> </body> </html>
相关文章推荐
- [Phonegap+Sencha Touch] 移动开发58 从移动浏览器(或webview)网页上点击链接跳转到QQ聊天界面
- Android应用实例之---使用Linkify + 正则式区分微博文本链接及跳转处理如同新浪微博Android版的应用上,当我们点击微博文本上的链接会自动跳转界面,或网站链接跳转网页浏览,或邮箱链接
- Android内嵌网页webview点击其中的链接跳转到我们应用内的Activity
- 如何在手机浏览器网页中点击链接跳转到QQ聊天界面
- webview中html页面里的跳转-----返回键处理
- ios App加载本地HTML网页,点击网页链接跳转到app页面的方法
- webview 笔记二(android和js交互、包括链接跳转常见问题处理,加载监视,拦截Url等)
- HTML基础 a标签实现点击超链接后新建一个网页跳转到指定链接
- 【代码】如何在手机等移动平台上浏览器网页中点击链接跳转到QQ聊天界面
- Android webview里加载显示网页,显示进度,点击网页链接跳转到app页面
- 微信中打开网页,链接无法跳转处理
- 如何在手机浏览器wap网页中点击链接跳转到微信界面
- iOS使用webView加载HTML网页链接简单展示
- HTML 链接后跳转到新的界面以及本界面不同内容
- webView获取链接后的url和加载经过处理后的HTML
- Android内嵌网页webview点击其中的链接跳转到我们应用内的Activity
- HTML链接和Web书写URL之处理保留字符和不安全字符
- 在移动网页网页上点击链接跳转到QQ聊天界面
- webhtml网页自动分类(carrot2初步研究)
- Web特殊字符处理(SQL URL HTML)