一.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属性与协议的综合使用;
完美的webView,不懂UIwebView的可以看看
将UIWebVIew和WKWebView封装到一起,当系统版本大于8.0时候选择WKWebView降低性能消耗,当小于8.0时候使用UIWebView进行加载 1、将项目中的根目录中的“ZLCWebView源文件”中的ZLCWebView.h及m拖入工程(或直接在...
网页浏览 Webview的使用 直接从 URL 加载网页 @IBOutlet weak var myWebview: UIWebView! ... // Directly load from URL var urlPath = "http://www.cafesuda.com" var url = NSURL(string: urlPath) var ...
在iOS中有两种网页视图可以加载网页除了系统的那个控制器。一种是UIWebView,另一种是WKWebView,其实WKWebView就是想替代UIWebView的,因为我们都知道UIWebView非常占内存等一些问题,但是现在很多人还在使用...
代码很少 ,主要功能是对以UIWebView加载的html网页进行某些不想展示的模块,进行隐藏。具体看代码
来源:Licence:Apache 2.0平台:iOS设备:iPhone / iPad作者:燕子 实现动态改变WebView加载的网页的字体大小。 小编注:感谢开发者@燕子 。
源码OTMWebView,OTMWebView是一个UIWebView子类,用于完善UIWebView的缺失功能,包括进度跟踪、为网页视图中的所有请求设置用户代理、响应处理、文件标题变化检测。
利用UIWebView显示pdf文件、网页。。。 11 汉字转码 11 Checking for background support on earlier versions of iOS 11 Handing the Keyboard notifications 12 点击键盘的next按钮,在不同的textField之间换行 12...
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...
功能介绍: 1.下拉可以显示当前网页的host,类似QQ、微信等内置...2.UIWebView、WKWebView的自由切换,默认用UIWebView 3.设置请求头Token 4.加载Html字符串 GitHub:https://github.com/wubin123/WBWebViewBrowser
动态调整UILabel的宽度或高度ios 将字符串转换为日期时间格式ios获取时间和星期(注意week1是星期天)隐藏状态栏屏幕变动检测设置视图背景图片键盘覆盖输入框将plist文件中的数据赋给数组手指的触摸从Plist里读内容...
- (void)webViewDidFinishLoad:(UIWebView *)webView { [ webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];//静止用户选择 [webView ...
但是,遗留代码仅UIWebView在iOS上支持旧样式(并且已弃用),并且我们还必须考虑向后兼容性,并且也必须使用过时的API WebView。 我们对这种情况不满意。如果我们使用最新技术,则性能和代码质量可能会大大提高...
Swift版的WebViewJavascriptBridge, UIWebview中Swift与JavaScript的交互
源码TSMiniWebBrowser,TSMiniWebBrowser是一款嵌入iOS应用的开源web浏览器控件,它解决了开源浏览器控件中一个共同的知名Bug——UIWebView bug,结合“缩放”和“横向切换”操作时,浏览器会产生一些不稳定的行为。...
GSWebView不是简单做一个系统判断。一个协议方法实现两代WebView的JS交互,一个WebView统一两代WebView。https://xorshine.github.io/2016/09/18/如何整合UIWebView与WKWebView/
基于NSURLSession NSURLProtol的UIWebView离线缓存 主要是使用苹果的黑魔法类:NSURLProtocol来对网络请求进行拦截,拦截后使用自定义的网络去加载数据后进行离线缓存。这样保证在没有网络的情况下,也能保证离线能...
Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与...
完全自定义高度封装WKWebViewgit地址 https://github.com/ICU-Coders/ZFWKWebView觉得不错点个Star吧