UIWebView

UIWebView

  1. 父類(lèi)是UIView
  2. 該控件專(zhuān)門(mén)用于顯示網(wǎng)頁(yè),相關(guān)的網(wǎng)絡(luò)知識(shí)詳見(jiàn)網(wǎng)絡(luò)
1 概念性知識(shí)
    00 UIWebView是iOS內(nèi)置的瀏覽器控件
    01 webView是有缺點(diǎn)的,會(huì)導(dǎo)致內(nèi)存泄露,而且這個(gè)問(wèn)題是它系統(tǒng)本身的問(wèn)題。
    02 手機(jī)上面的safai其實(shí)就是用webView來(lái)實(shí)現(xiàn)的
    03 現(xiàn)在的開(kāi)發(fā)并不完全是原生的開(kāi)發(fā),而更加傾向于原生+Html5的方式
    04 webView是OC代碼和html代碼之間進(jìn)行交互的橋梁
    05 UIWebView不但能加載遠(yuǎn)程的網(wǎng)頁(yè)資源,還能加載絕大部分的常見(jiàn)文件,如html、htm、pdf、doc、ppt、txt、mp4..

2 代碼相關(guān)
/*A*網(wǎng)頁(yè)操控相關(guān)方法**/
    [self.webView goBack];      回退
    [self.webView goForward];   前進(jìn)
    [self.webView reload];      刷新
    [self.webView stopLoading]; 停止加載

    //設(shè)置是否能夠前進(jìn)和回退;在網(wǎng)頁(yè)加載完畢后設(shè)置
    self.goBackBtn.enabled = webView.canGoBack;//canGoBack只讀
    self.fowardBtn.enabled = webView.canGoForward;//canGoForward只讀

/*B*常用的屬性設(shè)置**/
    self.webView.scalesPageToFit = YES; 設(shè)置網(wǎng)頁(yè)自動(dòng)適應(yīng)
    self.webView.dataDetectorTypes = UIDataDetectorTypeAll; 設(shè)置檢測(cè)網(wǎng)頁(yè)中的格式類(lèi)型,all表示檢測(cè)所有類(lèi)型包括超鏈接、電話(huà)號(hào)碼、地址等。
    self.webView.scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);

/*C*相關(guān)代理方法**/
    //每當(dāng)將加載請(qǐng)求的時(shí)候調(diào)用該方法,返回YES 表示加載該請(qǐng)求,返回NO 表示不加載該請(qǐng)求
    //可以在該方法中攔截請(qǐng)求
    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {
        return ![request.URL.absoluteString containsString:@"dushu"];
    }

    //開(kāi)始加載網(wǎng)頁(yè),不僅監(jiān)聽(tīng)我們指定的請(qǐng)求,還會(huì)監(jiān)聽(tīng)內(nèi)部發(fā)送的請(qǐng)求
    -(void)webViewDidStartLoad:(UIWebView *)webView

    //網(wǎng)頁(yè)加載完畢之后會(huì)調(diào)用該方法
    -(void)webViewDidFinishLoad:(UIWebView *)webView

    //網(wǎng)頁(yè)加載失敗調(diào)用該方法
    -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

/*D*其它知識(shí)點(diǎn)-加載本地資源**/
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"text.html" withExtension:nil];
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

UIWebView示例

@interface ViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *goBack;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *goforWard;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self test];
}
- (IBAction)goBackBtnClick:(id)sender
{
    [self.webView goBack];
}
- (IBAction)goForWardBtnClick:(id)sender
{
    [self.webView goForward];
}
- (IBAction)reloadBtnClick:(id)sender
{
    [self.webView reload];
}

-(void)test
{
    //創(chuàng)建請(qǐng)求對(duì)象
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //傳一個(gè)請(qǐng)求對(duì)象
    [self.webView loadRequest:request];

    //設(shè)置代理方法
    self.webView.delegate = self;
}


-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    self.goBack.enabled = self.webView.canGoBack;
    self.goforWard.enabled = self.webView.canGoForward;
}


//當(dāng)即將加載網(wǎng)頁(yè)請(qǐng)求的時(shí)候調(diào)用
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"%@",request.URL.absoluteString);

    //攔截
    if ([request.URL.absoluteString containsString:@"dushu"])return NO;
    //如果返回YES那么表示可以加載
    //如果返回的是NO ,那么表示拒絕這個(gè)請(qǐng)求
    return YES;
}

/*
方法調(diào)用順序:
 http://www.baidu.com/
 webViewDidStartLoad
    https://m.baidu.com/?from=844b&vit=fps
    webViewDidStartLoad
    webViewDidFinishLoad
 webViewDidFinishLoad

 */










































































































































?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評(píng)論 3 417
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,423評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,991評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,761評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,207評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,419評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,653評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,901評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,678評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,978評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容

  • IOS之UIWebView的使用 剛接觸IOS開(kāi)發(fā)1年多,現(xiàn)在對(duì)于 混合式 移動(dòng)端開(kāi)發(fā)越來(lái)越流行,因?yàn)殚_(kāi)發(fā)成本上、...
    學(xué)無(wú)止境666閱讀 45,812評(píng)論 5 53
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,151評(píng)論 4 61
  • OS之UIWebView的使用 剛接觸IOS開(kāi)發(fā)1年多,現(xiàn)在對(duì)于 混合式 移動(dòng)端開(kāi)發(fā)越來(lái)越流行,因?yàn)殚_(kāi)發(fā)成本上、速...
    知之未道閱讀 1,665評(píng)論 0 4
  • 逢一年期滿(mǎn),年末將至之時(shí),我有一個(gè)毛病便也找上門(mén)來(lái)的,就是別扭,能從假頭別扭至假尾。說(shuō)起起因,是源于母親鮮少與我共...
    07c61d6e2a9d閱讀 179評(píng)論 0 0
  • 【姓名】王雪冰 【導(dǎo)師】王玉印、袁文魁 【舵主】焦點(diǎn) 【導(dǎo)圖解說(shuō)】 本次作業(yè)點(diǎn)評(píng),又挑選了三位新的小伙伴。點(diǎn)評(píng)的作...
    bingbing007閱讀 321評(píng)論 1 1