iOS之WebView的使用总结
生活随笔
收集整理的這篇文章主要介紹了
iOS之WebView的使用总结
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
iOS學(xué)習(xí)之WebView的使用
http://blog.csdn.net/totogo2010/article/details/7686164目錄(?)[+]
1、使用UIWebView加載網(wǎng)頁(yè)
運(yùn)行XCode 4.3,新建一個(gè)Single View Application,命名為WebViewDemo。
2、加載WebView
在ViewController.h添加WebView成員變量和在ViewController.m添加實(shí)現(xiàn)
[cpp] view plain copy
#import <UIKit/UIKit.h> ?
??
@interface ViewController : UIViewController ?
{ ?
? ? UIWebView *webView; ?
} ?
@end ?
[cpp] view plain copy
ViewController.m ?
[cpp] view plain copy
- (void)viewDidLoad ?
{ ?
? ? [super viewDidLoad]; ?
? ? webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; ?
? ? NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]; ?
? ? [self.view addSubview: webView]; ?
? ? [webView loadRequest:request]; ?
} ?
運(yùn)行,這樣百度網(wǎng)頁(yè)就打開了
手機(jī)的網(wǎng)絡(luò)環(huán)境是實(shí)時(shí)變化的,網(wǎng)絡(luò)慢的時(shí)候,怎么提示用戶網(wǎng)頁(yè)正在打開呢?在網(wǎng)頁(yè)打開出錯(cuò)的時(shí)候怎么提示用戶呢?這時(shí)候我們就需要知道網(wǎng)頁(yè)什么時(shí)候打開的,
什么時(shí)候加載完成,什么時(shí)候出錯(cuò)了。那么我們需要實(shí)現(xiàn)這個(gè)<UIWebViewDelegate>協(xié)議
3、實(shí)現(xiàn)協(xié)議,在ViewController.h修改如下:
[cpp] view plain copy
#import <UIKit/UIKit.h> ?
??
@interface ViewController : UIViewController<UIWebViewDelegate> ?
{ ?
? ? UIWebView *webView; ?
} ?
@end ?
按住control+command+向上鍵,切換到ViewController.m文件,這是我們?cè)谖募写蛉? (void) webView,就能看到如下實(shí)現(xiàn)方法:
UIWebView中幾個(gè)重要的函數(shù)
1.- (void )webViewDidStartLoad:(UIWebView ?*)webView ? 網(wǎng)頁(yè)開始加載的時(shí)候調(diào)用
2.- (void )webViewDidFinishLoad:(UIWebView ?*)webView ?網(wǎng)頁(yè)加載完成的時(shí)候調(diào)用
3.- (void)webView:(UIWebView *)webView ?didFailLoadWithError:(NSError *)error 網(wǎng)頁(yè)加載錯(cuò)誤的時(shí)候調(diào)用
4、實(shí)現(xiàn)這三個(gè)方法,加入NSLog。
先在viewDidLoad 的webView實(shí)例化下面加上
? ? [webView setDelegate:self];設(shè)置代理。這樣上面的三個(gè)方法才能得到回調(diào)。
三個(gè)方法實(shí)現(xiàn)如下:
[cpp] view plain copy
<span style="font-family:Arial, Verdana, sans-serif;color:#333333;">- (void) webViewDidStartLoad:(UIWebView *)webView ?
{ ?
? ? NSLog(@"webViewDidStartLoad"); ?
} ?
- (void) webViewDidFinishLoad:(UIWebView *)webView ?
{ ?
? ? NSLog(@"webViewDidFinishLoad"); ?
} ?
- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error ?
{ ?
? ? NSLog(@"didFailLoadWithError:%@", error); ?
} ?
</span> ?
運(yùn)行打印:
2012-06-23 15:20:29.728 WebViewDemo[1001:f803] webViewDidStartLoad
2012-06-23 15:20:29.991 WebViewDemo[1001:f803] webViewDidFinishLoad
那我們?cè)囋噀rror情況,把wifi關(guān)掉,運(yùn)行打印結(jié)果:
2012-06-23 15:23:58.939 WebViewDemo[1087:f803] webViewDidStartLoad
2012-06-23 15:23:59.016 WebViewDemo[1087:f803] webViewDidFinishLoad
請(qǐng)求結(jié)果不變,為什么關(guān)掉網(wǎng)絡(luò)還成功了呢?緩存?我換163.com試試,這是真正的結(jié)果出來(lái)了:
2012-06-23 15:24:41.131 WebViewDemo[1134:f803] webViewDidStartLoad
2012-06-23 15:24:41.149 WebViewDemo[1134:f803] didFailLoadWithError:Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo=0x6b41660 {NSErrorFailingURLStringKey=http://www.163.com/, NSErrorFailingURLKey=http://www.163.com/, NSLocalizedDescription=The Internet connection appears to be offline., NSUnderlyingError=0x6eae690 "The Internet connection appears to be offline."}
連接錯(cuò)誤了,調(diào)用了didFailLoadWithError。
5、加載等待界面
為了給用戶更直觀的界面效果,我們加上等待的loading界面試試
在webViewDidStartLoad加入等待
[cpp] view plain copy
<strong>- (void) webViewDidStartLoad:(UIWebView *)webView ?
{ ?
? ? //創(chuàng)建UIActivityIndicatorView背底半透明View ? ? ??
? ? UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; ? ?
? ? [view setTag:108]; ? ?
? ? [view setBackgroundColor:[UIColor blackColor]]; ? ?
? ? [view setAlpha:0.5]; ? ?
? ? [self.view addSubview:view]; ? ?
? ? ??
? ? activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)]; ? ?
? ? [activityIndicator setCenter:view.center]; ? ?
? ? [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite]; ? ?
? ? [view addSubview:activityIndicator]; ? ?
??
? ? [activityIndicator startAnimating]; ?
? ?</strong> ?
加載完成或失敗時(shí),去掉loading效果
[cpp] view plain copy
<strong>- (void) webViewDidFinishLoad:(UIWebView *)webView ?
{ ?
? ? [activityIndicator stopAnimating]; ?
? ? UIView *view = (UIView*)[self.view viewWithTag:108]; ?
? ? [view removeFromSuperview]; ?
? ? NSLog(@"webViewDidFinishLoad"); ?
??
} ?
- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error ?
{ ?
? ? [activityIndicator stopAnimating]; ?
? ? UIView *view = (UIView*)[self.view viewWithTag:108]; ?
? ? [view removeFromSuperview]; ?
? ? </strong> ?
運(yùn)行效果:
例子代碼:http://download.csdn.net/detail/totogo2010/4391866
========
iOS開發(fā)中WebView的使用
http://blog.csdn.net/jingjingxujiayou/article/details/23018519?utm_source=tuicool&utm_medium=referral在AppDelegate.m文件中
[objc] view plain copy 在CODE上查看代碼片派生到我的代碼片
#import "AppDelegate.h" ?
#import "webTableViewController.h" ?
@implementation AppDelegate ?
??
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ?
{ ?
? ? self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; ?
? ? // Override point for customization after application launch. ?
? ? self.window.backgroundColor = [UIColor whiteColor]; ?
? ? webTableViewController *web = [[webTableViewController alloc]init]; ?
? ? self.window.rootViewController = web; ?
? ? [self.window makeKeyAndVisible]; ?
? ? return YES; ?
} ?
新鍵一個(gè)類命名為webTableViewController
webTableViewController.h
[objc] view plain copy 在CODE上查看代碼片派生到我的代碼片
#import <UIKit/UIKit.h> ?
??
@interface webTableViewController : UIViewController<UIWebViewDelegate> ?
{ ?
? ? IBOutlet UIWebView *webView; ?
? ? ??
? ? UIActivityIndicatorView *activityIndicatorView; ?
? ? UIView *opaqueView; ?
} ?
??
@end ?
webTableViewController.m
[objc] view plain copy 在CODE上查看代碼片派生到我的代碼片
#import "webTableViewController.h" ?
??
@interface webTableViewController () ?
??
@end ?
??
@implementation webTableViewController ?
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil ?
{ ?
? ? self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; ?
? ? if (self) { ?
? ? ? ? // Custom initialization ?
? ? } ?
? ? return self; ?
} ?
??
- (void)viewDidLoad ?
{ ?
? ? [super viewDidLoad]; ?
? ? webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 44, 320, 440)]; ?
? ? [webView setUserInteractionEnabled:YES];//是否支持交互 ?
? ? //[webView setDelegate:self]; ?
? ? webView.delegate=self; ?
? ? [webView setOpaque:NO];//opaque是不透明的意思 ?
? ? [webView setScalesPageToFit:YES];//自動(dòng)縮放以適應(yīng)屏幕 ?
? ? [self.view addSubview:webView]; ?
? ? ??
? ? //加載網(wǎng)頁(yè)的方式 ?
? ? //1.創(chuàng)建并加載遠(yuǎn)程網(wǎng)頁(yè) ?
? ? NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; ?
? ? [webView loadRequest:[NSURLRequest requestWithURL:url]]; ?
? ? //2.加載本地文件資源 ?
? ?/* NSURL *url = [NSURL fileURLWithPath:filePath];?
? ? NSURLRequest *request = [NSURLRequest requestWithURL:url];?
? ? [webView loadRequest:request];*/ ?
? ? //3.讀入一個(gè)HTML,直接寫入一個(gè)HTML代碼 ?
? ? //NSString *htmlPath = [[[NSBundle mainBundle]bundlePath]stringByAppendingString:@"webapp/loadar.html"]; ?
? ? //NSString *htmlString = [NSString stringWithContentsOfURL:htmlPath encoding:NSUTF8StringEncoding error:NULL]; ?
? ? //[webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]]; ?
? ? ??
? ? opaqueView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; ?
? ? activityIndicatorView = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; ?
? ? [activityIndicatorView setCenter:opaqueView.center]; ?
? ? [activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite]; ?
? ? [opaqueView setBackgroundColor:[UIColor blackColor]]; ?
? ? [opaqueView setAlpha:0.6]; ?
? ? [self.view addSubview:opaqueView]; ?
? ? [opaqueView addSubview:activityIndicatorView]; ?
? ? ??
? ? ??
} ?
??
-(void)webViewDidStartLoad:(UIWebView *)webView{ ?
? ? [activityIndicatorView startAnimating]; ?
? ? opaqueView.hidden = NO; ?
} ?
??
-(void)webViewDidFinishLoad:(UIWebView *)webView{ ?
? ? [activityIndicatorView startAnimating]; ?
? ? opaqueView.hidden = YES; ?
} ?
??
//UIWebView如何判斷 HTTP 404 等錯(cuò)誤 ?
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ ?
? ? NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; ?
? ? NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; ?
? ? if ((([httpResponse statusCode]/100) == 2)) { ?
? ? ? ? // self.earthquakeData = [NSMutableData data]; ?
? ? ? ? [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; ?
? ? ? ? ??
? ? ? ? [ webView loadRequest:[ NSURLRequest requestWithURL: url]]; ?
? ? ? ? webView.delegate = self; ?
? ? } else { ?
? ? ? ? NSDictionary *userInfo = [NSDictionary dictionaryWithObject: ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NSLocalizedString(@"HTTP Error", ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"Error message displayed when receving a connection error.") ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?forKey:NSLocalizedDescriptionKey]; ?
? ? ? ? NSError *error = [NSError errorWithDomain:@"HTTP" code:[httpResponse statusCode] userInfo:userInfo]; ?
? ? ? ? ??
? ? ? ? if ([error code] == 404) { ?
? ? ? ? ? ? NSLog(@"xx"); ?
? ? ? ? ? ? webView.hidden = YES; ?
? ? ? ? } ?
? ? ? ? ??
? ? } ?
} ?
- (void)didReceiveMemoryWarning ?
{ ?
? ? [super didReceiveMemoryWarning]; ?
? ? // Dispose of any resources that can be recreated. ?
} ?
??
@end?
========
iOS中UIWebView的使用詳解及利用webview實(shí)現(xiàn)圖文混排實(shí)例
http://blog.csdn.net/hdfqq188816190/article/details/51670842目錄(?)[-]
iOS中UIWebView的使用詳解
一初始化與三種加載方式
二一些常用的屬性和變量
三iOS7中的一些新特性
四webView協(xié)議中的方法
UIWebView保存圖片
iOS中UIWebView的使用詳解
一、初始化與三種加載方式
? ? ?UIWebView繼承與UIView,因此,其初始化方法和一般的view一樣,通過alloc和init進(jìn)行初始化,其加載數(shù)據(jù)的方式有三種:
第一種:
- (void)loadRequest:(NSURLRequest *)request;
這是加載網(wǎng)頁(yè)最常用的一種方式,通過一個(gè)網(wǎng)頁(yè)URL來(lái)進(jìn)行加載,這個(gè)URL可以是遠(yuǎn)程的也可以是本地的,例如我加載百度的主頁(yè):
? ? UIWebView * view = [[UIWebView alloc]initWithFrame:self.view.frame];
? ? [view loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
? ? [self.view addSubview:view];
會(huì)得到如下的效果:
第二種:
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
這個(gè)方法需要將httml文件讀取為字符串,其中baseURL是我們自己設(shè)置的一個(gè)路徑,用于尋找html文件中引用的圖片等素材。
第三種:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
這個(gè)方式使用的比較少,但也更加自由,其中data是文件數(shù)據(jù),MIMEType是文件類型,textEncodingName是編碼類型,baseURL是素材資源路徑。
二、一些常用的屬性和變量
@property (nonatomic,assign)id <UIWebViewDelegate> delegate;設(shè)置webView的代理
@property (nonatomic,readonly,retain)UIScrollView *scrollView;內(nèi)置的scrollView
@property (nonatomic,readonly,retain)NSURLRequest *request;URL請(qǐng)求
- (void)reload;重新加載數(shù)據(jù)
- (void)stopLoading;停止加載數(shù)據(jù)
- (void)goBack;返回上一級(jí)
- (void)goForward;跳轉(zhuǎn)下一級(jí)
@property (nonatomic,readonly,getter=canGoBack)BOOL canGoBack;獲取能否返回上一級(jí)
@property (nonatomic,readonly,getter=canGoForward)BOOL canGoForward;獲取能否跳轉(zhuǎn)下一級(jí)
@property (nonatomic,readonly,getter=isLoading)BOOL loading;獲取是否正在加載數(shù)據(jù)
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;通過javaScript操作web數(shù)據(jù)
@property (nonatomic)BOOL scalesPageToFit;設(shè)置是否縮放到適合屏幕大小
@property (nonatomic)UIDataDetectorTypes dataDetectorTypesNS_AVAILABLE_IOS(3_0);設(shè)置某些數(shù)據(jù)變?yōu)殒溄有问?#xff0c;這個(gè)枚舉可以設(shè)置如電話號(hào),地址,郵箱等轉(zhuǎn)化為鏈接
@property (nonatomic)BOOL allowsInlineMediaPlaybackNS_AVAILABLE_IOS(4_0);設(shè)置是否使用內(nèi)聯(lián)播放器播放視頻
@property (nonatomic)BOOL mediaPlaybackRequiresUserActionNS_AVAILABLE_IOS(4_0);設(shè)置視頻是否自動(dòng)播放
@property (nonatomic)BOOL mediaPlaybackAllowsAirPlayNS_AVAILABLE_IOS(5_0);設(shè)置音頻播放是否支持ari play功能
@property (nonatomic)BOOL suppressesIncrementalRenderingNS_AVAILABLE_IOS(6_0);設(shè)置是否將數(shù)據(jù)加載如內(nèi)存后渲染界面
@property (nonatomic)BOOL keyboardDisplayRequiresUserActionNS_AVAILABLE_IOS(6_0);設(shè)置用戶交互模式
三、iOS7中的一些新特性
下面這些屬性是iOS7之后才有的,通過他們可以設(shè)置更加有趣的web體驗(yàn)
@property (nonatomic)UIWebPaginationMode paginationModeNS_AVAILABLE_IOS(7_0);
? ? typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
? ? ? ? UIWebPaginationModeUnpaginated,//不使用翻頁(yè)效果
? ? ? ? UIWebPaginationModeLeftToRight,//將網(wǎng)頁(yè)超出部分分頁(yè),從左向右進(jìn)行翻頁(yè)
? ? ? ? UIWebPaginationModeTopToBottom,//將網(wǎng)頁(yè)超出部分分頁(yè),從上向下進(jìn)行翻頁(yè)
? ? ? ? UIWebPaginationModeBottomToTop,//將網(wǎng)頁(yè)超出部分分頁(yè),從下向上進(jìn)行翻頁(yè)
? ? ? ? UIWebPaginationModeRightToLeft//將網(wǎng)頁(yè)超出部分分頁(yè),從右向左進(jìn)行翻頁(yè)
? ? };
這個(gè)屬性用來(lái)設(shè)置一種模式,當(dāng)網(wǎng)頁(yè)的大小超出view時(shí),將網(wǎng)頁(yè)以翻頁(yè)的效果展示,枚舉如下:
@property (nonatomic)CGFloat pageLengthNS_AVAILABLE_IOS(7_0);設(shè)置每一頁(yè)的長(zhǎng)度
@property (nonatomic)CGFloat gapBetweenPagesNS_AVAILABLE_IOS(7_0);設(shè)置每一頁(yè)的間距
@property (nonatomic,readonly)NSUInteger pageCountNS_AVAILABLE_IOS(7_0);獲取分頁(yè)數(shù)
四、webView協(xié)議中的方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
準(zhǔn)備加載內(nèi)容時(shí)調(diào)用的方法,通過返回值來(lái)進(jìn)行是否加載的設(shè)置
- (void)webViewDidStartLoad:(UIWebView *)webView;開始加載時(shí)調(diào)用的方法
- (void)webViewDidFinishLoad:(UIWebView *)webView;結(jié)束加載時(shí)調(diào)用的方法
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加載失敗時(shí)調(diào)用的方法
實(shí)例:
2.下面看一下效果:
步驟:
0.創(chuàng)建兩個(gè)視圖控制體
創(chuàng)建一個(gè)新項(xiàng)目,然后創(chuàng)建兩個(gè)控制器LvesViewController和 LvesOriginalController
分別添加一個(gè)UIWebView到self.view上。
1.去除webView滾動(dòng)時(shí),上下的白邊。
- (void)clearWebViewBackground:(UIWebView *)webView
{
? ? UIWebView *web = webView;
? ? for (id v in web.subviews) {
? ? ? ? if ([v isKindOfClass:[UIScrollView class]]) {
? ? ? ? ? ? [v setBounces:NO];
? ? ? ? }
? ? }
}
2.設(shè)置代理
//2. 設(shè)置代理
? ? self.myWebView.delegate=self;
3.添加加載webview的視圖
#pragma mark 加載WebView
-(void) loadMyWebView{
? NSString *title=@"韓寒《后會(huì)無(wú)期》奇葩的吸金3秘籍";
??
? NSString *linkStr=[NSString stringWithFormat:@"<a href='%@'>我的博客</a> <a href='%@'>原文</a>",@"http://blog.csdn.net/wildcatlele",@"http://jincuodao.baijia.baidu.com/article/26059"];
??
? NSString *p1=@"韓寒《后會(huì)無(wú)期》的吸金能力很讓我驚訝!8月12日影片票房已成功沖破6億大關(guān)。而且排片量仍保持10 以上,以日收千萬(wàn)的速度穩(wěn)步向七億進(jìn)軍。";
??
? NSString *p2=@"要知道,《后會(huì)無(wú)期》不是主流類型片,是一個(gè)文藝片。不像《小時(shí)代》,是一個(gè)商業(yè)主流的偶像電影。";
? NSString *image1=[NSString stringWithFormat:@"<img src='%@' ?height='280' width='300' />",@"http://nvren.so/uploads/allimg/c140801/140DR4554L40-YB9.jpg"];
? NSString *image2=[NSString stringWithFormat:@"<img src='%@' ?height='280' width='300' />",@"http://f.hiphotos.baidu.com/news/w%3D638/sign=78315beeb1fb43161a1f797918a44642/2934349b033b5bb58cb61bdb35d3d539b600bcb5.jpg"];
??
? NSString *p3=@"太奇葩了!有人說,這是中國(guó)電影市場(chǎng)的紅利,是粉絲電影的成功。但是,有一部投資3000萬(wàn)的粉絲電影《我就是我》,有明星,制作也不錯(cuò),基本上是慘敗。";
??
? NSString *p4=@"《后會(huì)無(wú)期》賣的不是好故事,是優(yōu)越感。特別是針對(duì)80、90后的人群,你有沒有發(fā)現(xiàn),看《后會(huì)無(wú)期》比看《小時(shí)代3》有明顯的優(yōu)越感。故事雖然一般,但是很多人看完后,會(huì)在微博、微信上曬照片。所以說,對(duì)一個(gè)族群靠的不是廣度,而是深度。<br>\
? \
? 很兇殘,值得大家借鑒。韓寒《后會(huì)無(wú)期》還有什么秘密武器,歡迎《后會(huì)無(wú)期》團(tuán)隊(duì)或相關(guān)方爆料,直接留言即可,有料的可以送黎萬(wàn)強(qiáng)親筆簽名的《參與感》一書。";
??
? //初始化和html字符串
? NSString *htmlURlStr=[NSString stringWithFormat:@"<body style='background-color:#EBEBF3'><h2>%@</h2><p>%@</p> <p>%@ </p>%@ <br><p> %@</p> <p>%@</p>%@<p>%@</p></body>",title,linkStr,p1,image1,p2,p3,image2,p4];
??
? [self.myWebView loadHTMLString:htmlURlStr baseURL:nil];
}
4.實(shí)現(xiàn)代理方法,(處理連接點(diǎn)擊事件)
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
? NSString *urlStr=request.URL.absoluteString;
??
? NSLog(@"url: %@",urlStr);
??
? //為空,第一次加載本頁(yè)面
? if ([urlStr isEqualToString:@"about:blank"]) {
? ? return YES;
? }
??
? //設(shè)置點(diǎn)擊后的視圖控制器
? LvesOriginalController *originalC=[[LvesOriginalController alloc] init];
? originalC.originUrl=urlStr; //設(shè)置請(qǐng)求連接
? //跳轉(zhuǎn)到點(diǎn)擊后的控制器并加載webview
? [self.navigationController pushViewController:originalC animated:YES];
??
? return ?NO;
}
//設(shè)置底部滾動(dòng)不彈回
- (void)webViewDidFinishLoad:(UIWebView *)webView{
? NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];
? NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height];
? [webView stringByEvaluatingJavaScriptFromString:javascript];
}
5.實(shí)現(xiàn)OrigainalViewController
//
// ?LvesOriginalController.m
// ?WebViewDemo
//
// ?Created by Lves Li on 14-8-15.
// ?Copyright (c) 2014年 Lves. All rights reserved.
//
#import "LvesOriginalController.h"
@interface LvesOriginalController ()
{
? UIWebView *_webView;
}
@end
@implementation LvesOriginalController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
? self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
? if (self) {
? ? // Custom initialization
? }
? return self;
}
- (void)viewDidLoad
{
? [super viewDidLoad];
? //設(shè)置title
? self.title=@"原文";
??
??
? _webView=[[UIWebView alloc] init];
? _webView.frame=[[UIScreen mainScreen] bounds];
??
? [self.view addSubview:_webView];
??
? [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.originUrl]]];
??
??
}
@end
UIWebView保存圖片
http://www.cocoachina.com/ios/20160616/16660.html
========
總結(jié)
以上是生活随笔為你收集整理的iOS之WebView的使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeBSD学习总结
- 下一篇: 魔影病毒学习总结