`
R任轩
  • 浏览: 14706 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

UIWebView网页视图

 
阅读更多

一.UIWebView加载的时候通常有几种方法

1.loadRequest:

2.loadHTMLString:string  baseURL:

3.loadData:MIMEType:textEncodingName:baseURL:

其中baseURL 是指基准的url 是一个绝对的地址,程序要用到的其他资源就可以根据这个基准地址进行查找而不用再次定位到绝对地址;

二.UIWebView中几个重要的函数

1.- (void )webViewDidStartLoad:(UIWebView  *)webView   网页开始加载的时候调用

2.- (void )webViewDidFinishLoad:(UIWebView  *)webView  网页加载完成的时候调用

3.-(BOOL )webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType )navigationType

当程序以UIWebView加载方式1进行加载的时候就会调用到此函数,然后执行webViewDidStartLoad函数,所以我们可以在此函数中进行一些请求解析,URL地址分析的工作。

4.- (void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error

是一个可选的函数,如果页面加载失败可以根据不同的错误类型反馈给用户不同的信息

三.代码实现

1.在.h文件中加载声明UIWebviewDelegate协议

声明WebView

2.实现UIWebView

WebView  = [[ UIWebView   alloc]  initWithFrame: CGRectMake(x,x,x,x )];

[ WebView   setUserInteractionEnabled: YES ];  //是否支持交互

[ WebView   setDelegate: self ];  //委托

[ WebView   setOpaque: NO ];  //透明

[ self . view  addSubview : WebView];  //加载到自己的view

 

url = [[ NSURL alloc ] initWithString :@"http:"];

[ WebView loadRequest:[ NSURLRequest requestWithURL: url ]];  //笔者习惯采用loadRequest方式,你可以采用其他方式

opaqueview = [[ UIView   alloc]  initWithFrame: CGRectMake(x ,  x ,  x ,  x )];        //opaqueview 需要在.h文件中进行声明 用以做UIActivityIndicatorView的容器view;

activityIndicator  = [[ UIActivityIndicatorView   alloc]  initWithFrame: CGRectMake( x ,  x ,  x ,  x )];//需要在.h文件中进行声明

[ activityIndicator  setCenter :  opaqueview. center ];

[ activityIndicator   setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite];  //颜色根据不同的界面自己调整

[ opaqueview  setBackgroundColor:[ UIColor   blackColor]];

[ opaqueview  setAlpha: 0.6 ];

[ self . view  addSubview :  opaqueview];

[ opaqueview  addSubview : activityIndicator];

接下来添加

- (void )webViewDidFinishLoad:(UIWebView *)webView {

[activityIndicator stopAnimating];

opaqueview.hidden  = YES ;

}

- (void )webViewDidStartLoad:(UIWebView *)webView {     

[ activityIndicator startAnimating ]; 

opaqueview.hidden  = NO ;

}

//.h文件
@interface ViewController : UIViewController<UIWebViewDelegate>{
    IBOutlet UIWebView *webView;
    UIActivityIndicatorView *activityIndicatorView;
    UIView *opaqueview;
}

//.m文件
- (void)viewDidLoad
{
    [superviewDidLoad];
webView = [[UIWebViewalloc] initWithFrame:CGRectMake(0, 44, 320, 440 )];
    [webViewsetUserInteractionEnabled:YES];             //是否支持交互
    [webView setDelegate:self];                          //委托
    [webView setOpaque:NO];                              //Opaque为不透明的意思,这里为透明
    [webView setScalesPageToFit:YES];                    //自动缩放以适应屏幕
    [self.view addSubview:webView];             

//加载网页的方式
    //1.创建并加载远程网页
    NSURL* url = [NSURLURLWithString:@"http://www.baidu.com"];
    [webViewloadRequest:[NSURLRequestrequestWithURL:url]];  
    //2.加载本地文件资源
//    NSURL *url = [NSURL fileURLWithPath:filePath];  //filePath为文件路径
//    NSURLRequest *request = [NSURLRequest requestWithURL:url];
//    [webView loadRequest:request];

    //3.读入一个 HTML,直接写入一个HTML代码
//    NSString *htmlPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"webapp/loader.html"];//相当于文件地址
//    NSString *htmlString = [NSString stringWithContentsOfFile: htmlPath encoding:NSUTF8StringEncoding error:NULL];
//    [webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];
 opaqueview = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; //opaqueview 需要在.h文件中进行声明用以做UIActivityIndicatorView的容器view;

    activityIndicatorView = [[UIActivityIndicatorViewalloc] 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 {
    [activityIndicatorViewstartAnimating];
    opaqueview.hidden = NO;
}

//当网页视图结束加载一个请求之后得到通知

- (void) webViewDidFinishLoad:(UIWebView *)webView{
    [activityIndicatorViewstopAnimating]; //停止风火轮
    opaqueview.hidden = YES; //隐藏
}

 

分享到:
评论

相关推荐

    网页视图 UIWebView

    网页视图的基本使用,网络资源地址字符串的处理,UIWebView属性与协议的综合使用;

    ios-完美的UIWebView.zip

    完美的webView,不懂UIwebView的可以看看

    ios-封装UIWebVIew和WKWebView优化webview性能.zip

    将UIWebVIew和WKWebView封装到一起,当系统版本大于8.0时候选择WKWebView降低性能消耗,当小于8.0时候使用UIWebView进行加载 1、将项目中的根目录中的“ZLCWebView源文件”中的ZLCWebView.h及m拖入工程(或直接在...

    Webview:网页视图使用

    网页浏览 Webview的使用 直接从 URL 加载网页 @IBOutlet weak var myWebview: UIWebView! ... // Directly load from URL var urlPath = "http://www.cafesuda.com" var url = NSURL(string: urlPath) var ...

    iOs迁至WKWebView跨过的一些坑

    在iOS中有两种网页视图可以加载网页除了系统的那个控制器。一种是UIWebView,另一种是WKWebView,其实WKWebView就是想替代UIWebView的,因为我们都知道UIWebView非常占内存等一些问题,但是现在很多人还在使用...

    ios-webView隐藏HTML网页的某些不需要的模块.zip

    代码很少 ,主要功能是对以UIWebView加载的html网页进行某些不想展示的模块,进行隐藏。具体看代码

    UIWebview字体变大变小(iPhone源代码)

    来源:Licence:Apache 2.0平台:iOS设备:iPhone / iPad作者:燕子  实现动态改变WebView加载的网页的字体大小。 小编注:感谢开发者@燕子 。

    请求网页设置代理和文件标题检测

    源码OTMWebView,OTMWebView是一个UIWebView子类,用于完善UIWebView的缺失功能,包括进度跟踪、为网页视图中的所有请求设置用户代理、响应处理、文件标题变化检测。

    iphone开发笔记

    利用UIWebView显示pdf文件、网页。。。 11 汉字转码 11 Checking for background support on earlier versions of iOS 11 Handing the Keyboard notifications 12 点击键盘的next按钮,在不同的textField之间换行 12...

    《iPhone开发实战》.(Christopher Allen).pdf

    20.4 使用uiwebview320 20.4.1 调用web视图320 20.4.2 管理web视图委托321 20.4.3 缩略图:一个web视图例子322 20.4.4 google maps:一个core location示例324 20.5 解析xml325 20.5.1 启动nsxmlparser...

    ios-内置浏览器.zip

    功能介绍: 1.下拉可以显示当前网页的host,类似QQ、微信等内置...2.UIWebView、WKWebView的自由切换,默认用UIWebView 3.设置请求头Token 4.加载Html字符串 GitHub:https://github.com/wubin123/WBWebViewBrowser

    iphong开发的文档

    动态调整UILabel的宽度或高度ios 将字符串转换为日期时间格式ios获取时间和星期(注意week1是星期天)隐藏状态栏屏幕变动检测设置视图背景图片键盘覆盖输入框将plist文件中的数据赋给数组手指的触摸从Plist里读内容...

    ios-WebView实现网页图片获取放大.zip

    - (void)webViewDidFinishLoad:(UIWebView *)webView { [ webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];//静止用户选择 [webView ...

    UnityUniWebView最新版DEMO

    但是,遗留代码仅UIWebView在iOS上支持旧样式(并且已弃用),并且我们还必须考虑向后兼容性,并且也必须使用过时的API WebView。 我们对这种情况不满意。如果我们使用最新技术,则性能和代码质量可能会大大提高...

    ios-SwiftWebViewBridge.zip

    Swift版的WebViewJavascriptBridge, UIWebview中Swift与JavaScript的交互

    嵌入iOS应用的开源web浏览器控件

    源码TSMiniWebBrowser,TSMiniWebBrowser是一款嵌入iOS应用的开源web浏览器控件,它解决了开源浏览器控件中一个共同的知名Bug——UIWebView bug,结合“缩放”和“横向切换”操作时,浏览器会产生一些不稳定的行为。...

    ios-GSWebView.zip

    GSWebView不是简单做一个系统判断。一个协议方法实现两代WebView的JS交互,一个WebView统一两代WebView。https://xorshine.github.io/2016/09/18/如何整合UIWebView与WKWebView/

    ios-基于NSURLSession和NSURLProtocol的webView缓存.zip

    基于NSURLSession NSURLProtol的UIWebView离线缓存 主要是使用苹果的黑魔法类:NSURLProtocol来对网络请求进行拦截,拦截后使用自定义的网络去加载数据后进行离线缓存。这样保证在没有网络的情况下,也能保证离线能...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与...

    ZFWKWebView

    完全自定义高度封装WKWebViewgit地址 https://github.com/ICU-Coders/ZFWKWebView觉得不错点个Star吧

Global site tag (gtag.js) - Google Analytics