iOS-学习之WebView的使用

原创 2015年07月07日 18:30:36
viewcontroller.m
- (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];  
} 

手机的网络环境是实时变化的,网络慢的时候,怎么提示用户网页正在打开呢?在网页打开出错的时候怎么提示用户呢?这时候我们就需要知道网页什么时候打开的,

什么时候加载完成,什么时候出错了。那么我们需要实现这个<UIWebViewDelegate>协议

UIWebView中几个重要的函数
1.- (void )webViewDidStartLoad:(UIWebView  *)webView   网页开始加载的时候调用
2.- (void )webViewDidFinishLoad:(UIWebView  *)webView  网页加载完成的时候调用

3.- (void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error 网页加载错误的时候调用

加载等待界面
为了给用户更直观的界面效果,我们加上等待的loading界面试试
在webViewDidStartLoad加入等待
[cpp] view plaincopy
<strong>- (void) webViewDidStartLoad:(UIWebView *)webView  
{  
    //创建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>  

加载完成或失败时,去掉loading效果
[cpp] view plaincopy
<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>  


版权声明:本文为博主原创文章,转载请注明作者出处,谢谢。

[WebView学习之五]:调试Web Apps

上一篇我们学习了( [WebView学习之四]:迁移到Android4.4版本的WebView),今天我们来继续学习。        (博客地址:http://blog.csdn.net/dev...
  • jiangqq781931404
  • jiangqq781931404
  • 2014年11月04日 13:28
  • 3052

Android开发之WebView知识和常见问题

Android开发之WebView知识和常见问题一、前言最近在学习HTML5相关的知识,发现前端技术的功能越来越强大了,很多功能如果我们通过原生代码的形式进行实现的话相对于H5会花费数倍的时间,在最求...
  • dahaidadavid
  • dahaidadavid
  • 2016年08月10日 14:13
  • 1410

Android4.3及以下版本加载html源码错误问题

在做项目的时候碰到这么个问题:服务端返回一串含Javascript的html文本,Android4.3以上版本加载正常,但是以下版本就无法加载,直接显示源码在页面上。 网上搜了一遍,有关联的信息...
  • u011228060
  • u011228060
  • 2017年07月31日 16:49
  • 149

cocos2d-js webview

var webView = new ccui.WebView(); webView.setPosition(cc.p(this._actView.getContentSize().width/2, t...
  • LANGZI7758521
  • LANGZI7758521
  • 2016年04月28日 14:17
  • 2710

Android之WebView学习

WebView常用方法WebSettings在使用WebView前我们都要进行相关的配置,常见的操作如下: WebSettings settings = mWebView.getSettings...
  • whuhan2013
  • whuhan2013
  • 2016年08月13日 11:23
  • 1197

iOS-生成Bundle包-引入bundle-使用bundle

在我们使用第三方框架时,常常看到XXX.bundle的文件。 我们找到该文件,显示包内容,大致看到很多资源文件:图片、配置文本、XIB文件…… 什么是Bundle文件? 简单理解,就是资...
  • tianjiqcs
  • tianjiqcs
  • 2014年07月10日 17:10
  • 702

【Android开发】网络编程及Internet应用-获取天气预报

在Eclipse中创建Android项目,利用之前学过的WebView控件和中国天气网提供的天气数据接口,实现获取指定城市的天气预报。 布局文件: res/layout/main.xml: ...
  • u013517797
  • u013517797
  • 2015年06月15日 23:10
  • 1857

安卓:WebView简单使用

如图: 注意:加网络访问权限 逻辑代码文件: package com.example.day19_webview; import android.app.Activity;...
  • my_worldlet
  • my_worldlet
  • 2015年09月23日 20:06
  • 768

Android安全开发之WebView中的地雷

0X01 About WebView   在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等。WebView...
  • YAQSecurity
  • YAQSecurity
  • 2016年08月08日 20:10
  • 396

Android开发使用WebView实战技巧

前段时间做项目的时候,在项目中用了WebView组件,遇到了一些问题,所以特地找来了一些资料,学习怎么解决,现在将学习的内容整理成一篇博客记录在这里,方便以后再次遇到时可以快速查看并且解决问题。我们知...
  • lee_tianya
  • lee_tianya
  • 2015年04月02日 09:58
  • 3725
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS-学习之WebView的使用
举报原因:
原因补充:

(最多只允许输入30个字)