日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

UIWebView相关应用

發(fā)布時(shí)間:2024/8/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIWebView相关应用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn):http://blog.csdn.net/lvziru/article/details/7868454

http://justcoding.iteye.com/blog/1455674


UIWebView可以讓你創(chuàng)建一個(gè)網(wǎng)頁(yè)瀏覽器,類(lèi)似safari,而不是在程序中啟動(dòng)safsri哦。是不是覺(jué)得很棒呢?廢話(huà)少說(shuō),切入正題。

?

一、創(chuàng)建UIWebView

C代碼??
  • CGRect?bouds?=?[[UIScreen?mainScreen]applicationFrame];????
  • UIWebView*?webView?=?[[UIWebView?alloc]initWithFrame:bounds];????
  • ?

    二、設(shè)置屬性

    C代碼??
  • webView.scalespageToFit?=?YES;//自動(dòng)對(duì)頁(yè)面進(jìn)行縮放以適應(yīng)屏幕????
  • webView.detectsPhoneNumbers?=?YES;//自動(dòng)檢測(cè)網(wǎng)頁(yè)上的電話(huà)號(hào)碼,單擊可以撥打??
  • webView.autoresizesSubviews?=?NO;?//自動(dòng)調(diào)整大小??
  • webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight?|?UIViewAutoresizingFlexibleWidth);??
  • ?
    三、顯示網(wǎng)頁(yè)視圖UIWebView

    C代碼??
  • [self.view?addSubview:webView];??
  • ?

    四、加載內(nèi)容

    C代碼??
  • NSURL*?url?=?[NSURL?URLWithString:@"http://www.youku.com"];//創(chuàng)建URL????
  • NSURLRequest*?request?=?[NSURLRequest?requestWithURL:url];//創(chuàng)建NSURLRequest????
  • [webView?loadRequest:request];//加載????
  • ?

    ?也可以加載一個(gè)本地資源:

    ?

    C代碼??
  • NSURL*?url?=?[NSURL???fileURLWithPath:filePath];//創(chuàng)建URL????
  • NSURLRequest*?request?=?[NSURLRequest?requestWithURL:url];//創(chuàng)建NSURLRequest????
  • [webView?loadRequest:request];//加載????
  • ?
    UIWebView 還支持將一個(gè)NSString對(duì)象作為源來(lái)加載。你可以為其提供一個(gè)基礎(chǔ)URL,來(lái)指導(dǎo)UIWebView對(duì)象如何跟隨鏈接和加載遠(yuǎn)程資源:

    C代碼??
  • [webView?loadHTMLString:myHTML?baseURL:[NSURL?URLWithString:@"http://baidu.com"]];???
  • ?

    五、導(dǎo)航

    UIWebView類(lèi)內(nèi)部會(huì)管理瀏覽器的導(dǎo)航動(dòng)作,通過(guò)goForward和goBack方法你可以控制前進(jìn)與后退動(dòng)作:

    C代碼??
  • [webView?goBack];????
  • [webView?goForward];????
  • [webView?reload];//重載????
  • [webView?stopLoading];//取消載入內(nèi)容????
  • ?

    六、UIWebViewDelegate委托代理

    UIWebView支持一組委托方法,這些方法將在特定時(shí)間得到通知。要使用這些方法,必須先設(shè)定webView的委托:

    C代碼??
  • webView.delegate?=?self;????
  • ?

    七、三個(gè)方法

    C代碼??
  • -?(void)loadRequest:(NSURLRequest?*)request;??
  • -?(void)loadHTMLString:(NSString?*)string?baseURL:(NSURL?*)baseURL;??
  • -?(void)loadData:(NSData?*)data?MIMEType:(NSString?*)MIMEType?textEncodingName:(NSString?*)textEncodingName?baseURL:(NSURL?*)baseURL;??
  • ?

    其中baseURL 是指基準(zhǔn)的url 是一個(gè)絕對(duì)的地址,程序要用到的其他資源就可以根據(jù)這個(gè)基準(zhǔn)地址進(jìn)行查找而不用再次定位到絕對(duì)地址;

    ?

    下面每個(gè)委托方法的第一個(gè)參數(shù)都是指向一個(gè)UIwebview的指針,因此你可以將一個(gè)委托用于多個(gè)網(wǎng)頁(yè)視圖。

    C代碼??
  • -(BOOL)webView:(UIWebView*)webView?shouldStartLoadWithRequest:(NSURLRequest*)?reuqest?navigationType:(UIWebViewNavigationType)navigationType;//當(dāng)網(wǎng)頁(yè)視圖被指示載入內(nèi)容而得到通知。應(yīng)當(dāng)返回YES,這樣會(huì)進(jìn)行加載。通過(guò)導(dǎo)航類(lèi)型參數(shù)可以得到請(qǐng)求發(fā)起的原因,可以是以下任意值:????
  • UIWebViewNavigationTypeLinkClicked????
  • UIWebViewNavigationTypeFormSubmitted????
  • UIWebViewNavigationTypeBackForward????
  • UIWebViewNavigationTypeReload????
  • UIWebViewNavigationTypeFormResubmitted????
  • UIWebViewNavigationTypeOther???
  • ?

    C代碼??
  • -(void)webViewDidStartLoad:(UIWebView*)webView?;//當(dāng)網(wǎng)頁(yè)視圖已經(jīng)開(kāi)始加載一個(gè)請(qǐng)求后,得到通知。??
  • ?? C代碼??
  • -(void)webViewDidFinishLoad:(UIWebView*)webView?;//當(dāng)網(wǎng)頁(yè)視圖結(jié)束加載一個(gè)請(qǐng)求之后,得到通知。??
  • ?

    C代碼??
  • -(void)webView:(UIWebView*)webView??DidFailLoadWithError:(NSError*)error;//當(dāng)在請(qǐng)求加載中發(fā)生錯(cuò)誤時(shí),得到通知。會(huì)提供一個(gè)NSSError對(duì)象,以標(biāo)識(shí)所發(fā)生錯(cuò)誤類(lèi)型。??
  • ?

    ?

    來(lái)源:?http://blog.csdn.net/iukey/article/details/7299763

    ?

    ?

    實(shí)例:

    ?

    顯示圖片

    C代碼??
  • CGRect?myImage?=?CGRectMake(10,?10,?140,?100);??????//定義坐標(biāo)和大小??
  • UIImageView?*myimageView?=?[[UIImageView?alloc]?initWithFrame:myImage];??//初始化UIImageView??
  • ??
  • [myimageView?setImage:[UIImage?imageNamed:@"iphonewebsnsxiao.png"]];???//設(shè)置圖片??
  • myimageView.opaque?=?YES;???//不透明類(lèi)型??
  • ??
  • [window?addSubview:myimageView];??//添加到window里??
  • [self.window?makeKeyAndVisible];??
  • ?

    Web view

    C代碼??
  • CGRect?webFrame?=?CGRectMake(0.0f,?0.0f,?320.0f,?460.0f);?????//定義坐標(biāo)和大小??
  • UIWebView?*webView?=?[[UIWebView?alloc]?initWithFrame:webFrame];//初始化UIWebView??
  • ??
  • NSString?*urlAddress?=?@"http://www.baidu.com";???????//定義一個(gè)網(wǎng)址字符串??
  • NSURL?*url?=?[NSURL?URLWithString:urlAddress];?????//定義NSURL的值??
  • NSURLRequest?*requestObj?=?[NSURLRequest?requestWithURL:url];??//創(chuàng)建一個(gè)返回值??
  • ??
  • [webView?loadRequest:requestObj];?????//鏈接到URL??
  • [window?addSubview:webView];?????????//添加到window里??
  • ?

    或者 (Empty Application?)

    C代碼??
  • -?(BOOL)application:(UIApplication?*)application?didFinishLaunchingWithOptions:(NSDictionary?*)launchOptions??
  • {??
  • ????self.window?=?[[UIWindow?alloc]?initWithFrame:[[UIScreen?mainScreen]?bounds]];??
  • ????//?Override?point?for?customization?after?application?launch.??
  • ??????
  • ??????
  • ????NSLog(@"loading");??
  • ??????
  • ????UIView?*contentView?=?[[UIView?alloc]?initWithFrame:[[UIScreen?mainScreen]?applicationFrame]];??
  • ????contentView.backgroundColor?=?[UIColor?blueColor];??
  • ??????
  • ????NSLog(@"self?view");??
  • ??????
  • ????//?view?orientation?rotation??
  • ????contentView.autoresizingMask?=?(UIViewAutoresizingFlexibleWidth?|?UIViewAutoresizingFlexibleHeight);??
  • ??????
  • ????//設(shè)置屬性??
  • ??????
  • ????//自動(dòng)調(diào)整視圖大小??
  • ????contentView.autoresizesSubviews?=?NO;??
  • ????[self.window?addSubview:contentView];??
  • ??????
  • ??????
  • ????//創(chuàng)建一個(gè)層用來(lái)放webview????
  • ????UIWebView?*aWebView?=?[[UIWebView?alloc]?initWithFrame:[[UIScreen?mainScreen]?applicationFrame]];??
  • ??????
  • ????//縮放??
  • ????aWebView.scalesPageToFit?=?NO;??
  • ??????
  • ????//自動(dòng)調(diào)整大小??
  • ????aWebView.autoresizesSubviews?=?NO;??
  • ??????
  • ????aWebView.autoresizingMask=(UIViewAutoresizingFlexibleHeight?|?UIViewAutoresizingFlexibleWidth);??
  • ????//[aWebView?setDelegate:self];??
  • ??????
  • ????NSURL?*aURL?=?[NSURL?URLWithString:@"http://www.youtube.com"];??
  • ????NSURLRequest?*aRequest?=?[NSURLRequest?requestWithURL:aURL];??
  • ??????
  • ????//發(fā)送請(qǐng)求??
  • ????[aWebView?loadRequest:aRequest];??
  • ??????
  • ????//把webview添加到內(nèi)容視圖??
  • ??????
  • ????[contentView?addSubview:aWebView];??
  • ??????
  • ????[self.window?makeKeyAndVisible];??
  • ??????
  • ????aWebView?=?nil;??
  • ????contentView?=?nil;??
  • ????return?YES;????
  • }??
  • ?

    UIWebView 加載網(wǎng)頁(yè)時(shí)使用程序中的背景(?解決加載頁(yè)面時(shí)一片空白問(wèn)題?)

    ?

    UIWebView加載網(wǎng)頁(yè)時(shí)默認(rèn)使用了網(wǎng)頁(yè)中的背景,而不能那使用程序中的主題背景,這讓人很不爽。下面給出我的解決辦法。

    ?

    首先我在網(wǎng)頁(yè)的css中加上了:

    Html代碼??
  • body{??
  • background-color:transparent;??
  • }??
  • ?

    然后直接看代碼:

    C代碼??
  • UIWebView?*wv?=?[[UIWebView?alloc]initWithFrame:CGRectMake(0.0,0.0,320.0,460.0)];??
  • wv.backgroundColor?=?[UIColor?clearColor];//清除背景色??
  • wb.opaque?=?NO;//背景不透明設(shè)置為NO??
  • [self.view?addSubview:wv];??
  • self.view.backgroundColor?=?[UIColor??orangeColor];//其實(shí)這里我是為了設(shè)置為圖片背景,偷懶了,不寫(xiě)了。??
  • ?

    或者

    Java代碼??
  • -?(void)viewDidLoad??
  • {??
  • ????[super?viewDidLoad];??
  • ????//?Do?any?additional?setup?after?loading?the?view,?typically?from?a?nib.??
  • ??????
  • ????NSURL?*url?=?[NSURL?URLWithString:@"http://www.lebunnybleu.com/seoul/storelocation"];??
  • ????NSURLRequest?*request?=?[NSURLRequest?requestWithURL:url];??
  • ??????
  • ????self.webview.backgroundColor?=?[UIColor?clearColor];??
  • ????self.webview.opaque?=?NO;??
  • ??????
  • ????[self.webviewsetBackgroundColor:[UIColor?redColor]];??
  • //?[self.webView?setBackgroundColor:[UIColor?colorWithPatternImage:[UIImage?imageNamed:@"webmap320x640.png"]]];??
  • ????[self.webviewloadRequest:request];??
  • }??
  • ?

    UIWebView 加載本地html文件(demo.html)

    Java代碼??
  • CGRect?bouds?=?CGRectMake(0,?halfHight,?viewBouds.size.width,?halfHight);??
  • UIWebView?*webview?=?[[UIWebView?alloc]?initWithFrame:bouds];??
  • ??
  • webview.scalesPageToFit?=?YES;??
  • webview.autoresizesSubviews?=?YES;??
  • webview.autoresizingMask?=?(UIViewAutoresizingFlexibleHeight?|?UIViewAutoresizingFlexibleWidth);??
  • ??
  • [webview?loadRequest:[NSURLRequest?requestWithURL:[NSURL?fileURLWithPath:[[NSBundle?mainBundle]?pathForResource:@"demo"?ofType:@"html"]?isDirectory:NO]]];??
  • ??
  • [self.view?addSubview:webview];??
  • ?

    載入html的方法

    ?

    1.

    C代碼??
  • NSString?*resourcePath?=?[[NSBundle?mainBundle]?resourcePath];??
  • NSString?*filePath?=?[resourcePath?stringByAppendingPathComponent:@"webpage.html"];??
  • NSString?*htmlstring=[[NSString?alloc]?initWithContentsOfFile:filePath??encoding:NSUTF8StringEncoding?error:nil];??
  • [uiwebview?loadHTMLString:htmlstring?baseURL:[NSURL?fileURLWithPath:[[NSBundle?mainBundle]?bundlePath]]];??
  • 或者

    Java代碼??
  • NSString?*str?=?[NSString?stringWithFormat:@"<html><head><style>body{margin:0;padding:0}</style></head><body><iframe?marginwidth=0?marginheight=0?frameborder=0?scrolling='no'?src='http://tv.ibtimes.com'></iframe></body></html>"];??
  • [webview?loadHTMLString:str?baseURL:[NSURL?URLWithString:@"http://www.ibtimes.com"]];???
  • 2.?

    C代碼??
  • NSString?*webpage?=?[NSBundle?pathForResource:@"webpage"?ofType:@"html"?inDirectory:[[NSBundle?mainBundle]?bundlePath]];??
  • [uiwebview?loadRequest:[NSURLRequest?requestWithURL:[NSURL?fileURLWithPath:webpage]]];??
  • ?

    3.

    C代碼??
  • [uiwebview?loadRequest:[NSURLRequest?requestWithURL:[NSURL?URLWithString:@"http://qq.com"]]];??
  • ?

    NSBundle的用法 ?

    ?

    NSBundle的對(duì)象可以獲取應(yīng)用程序安裝目錄的附件。附件包括了,當(dāng)前應(yīng)用程序下,所有的文件。(圖片、屬性列表等)

    ?

    獲取XML文件

    C代碼??
  • NSString?*filePath?=?[[NSBundle?mainBundle]?pathForResouse:@"re"?ofType:@"xml"];??
  • NSData?*data?=?[[NSData?alloc]?initWithContentsOfFile:filePath];??
  • ?

    獲取TXT文件

    C代碼??
  • NSString?*filePath?=?[[NSBundle?mainBundle]?pathForResouse:@"myFile"?ofType:@"txt"];??
  • NSData?*data?=?[NSData?dataWithContentsOfFile:filePath];??
  • ?

    獲取屬性列表

    C代碼??
  • NSDictionary?*dict?=?[NSDictionary?dictionaryWithContentsOfFile:[[NSBundle?mainBundle]?pathForResource:@"ViewControllers"?ofType:@"plist"]];??
  • ?

    默認(rèn)safari打開(kāi)鏈接地址

    ?

    .h

    C代碼??
  • #import?<UIKit/UIKit.h>??
  • ??
  • @interface?adFullScreen?:?UIViewController?<UIWebViewDelegate>??
  • {??
  • ????IBOutlet?UIWebView?*webview;??
  • }??
  • ??
  • @end??
  • ?

    .m

    Java代碼??
  • -?(void)?viewDidLoad??
  • {??
  • ????NSString?*adHTML?=?@"<html><head><style>body{margin:0;padding:0}</style></head><body><iframe?width=1024?height=768?marginwidth=0?marginheight=0?frameborder=0?scrolling='no'?src='http://oascentral.ibtimes.com/RealMedia/ads/adstream_sx.ads/ipad.ibtimes/home@Position2'></iframe></body></html>";??
  • ??
  • ????[webview?loadHTMLString:adHTML?baseURL:[NSURL?URLWithString:@"http://justcoding.iteye.com"]];??
  • ????webview.delegate?=?self;??
  • ??
  • ????adHTML?=?nil;??
  • }??
  • ??
  • -(BOOL)?webView:(UIWebView?*)inWeb?shouldStartLoadWithRequest:(NSURLRequest?*)inRequest?navigationType:(UIWebViewNavigationType)inType?{??
  • ????if?(?inType?==?UIWebViewNavigationTypeLinkClicked?)?{??
  • ????????[[UIApplication?sharedApplication]?openURL:[inRequest?URL]];??
  • ????????return?NO;??
  • ????}??
  • ????return?YES;??
  • }??
  • ?

    如果不想設(shè)置點(diǎn)擊,而是打開(kāi)后直接跳轉(zhuǎn)一個(gè)網(wǎng)址,只要用以下代碼來(lái)代替

    Java代碼??
  • -?(BOOL)webView:(UIWebView?*)webView??
  • ????shouldStartLoadWithRequest:(NSURLRequest?*)request??
  • ????navigationType:(UIWebViewNavigationType)navigationType??
  • {??
  • ????if?([[[request?URL]?absoluteString]?isEqual:@"http://justcoding.iteye.com"])??
  • ????????return?YES;??
  • ??????
  • ????[[UIApplication?sharedApplication]?openURL:[request?URL]];??
  • ??????
  • ????return?NO;??
  • }??
  • ?

    他的其他方法和屬性是:

    C代碼??
  • typedef?enum?{??
  • ????UIWebViewNavigationTypeLinkClicked,??
  • ????UIWebViewNavigationTypeFormSubmitted,??
  • ????UIWebViewNavigationTypeBackForward,??
  • ????UIWebViewNavigationTypeReload,??
  • ????UIWebViewNavigationTypeFormResubmitted,??
  • ????UIWebViewNavigationTypeOther??
  • }?UIWebViewNavigationType;??
  • ?

    C代碼??
  • @protocol?UIWebViewDelegate?<NSObject>??
  • ??
  • @optional??
  • -?(BOOL)webView:(UIWebView?*)webView?shouldStartLoadWithRequest:(NSURLRequest?*)request?navigationType:(UIWebViewNavigationType)navigationType;??
  • -?(void)webViewDidStartLoad:(UIWebView?*)webView;??
  • -?(void)webViewDidFinishLoad:(UIWebView?*)webView;??
  • -?(void)webView:(UIWebView?*)webView?didFailLoadWithError:(NSError?*)error;??
  • ??
  • @end??
  • ?

    其中黃色高亮的為清除UIWebView背景色的關(guān)鍵方法





    轉(zhuǎn)載于:https://www.cnblogs.com/jackljf/archive/2012/09/21/3589016.html

    總結(jié)

    以上是生活随笔為你收集整理的UIWebView相关应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。