一、UIWebView主要有三种方法实现页面的装载,分别是:
1. (void)loadRequest:(NSURLRequest *)request; (直接装载URL)
2. (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; (主要用于装载用字符串拼接成的HTML代码)
3 .(void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;(主要应用于转载本地页面或者外部传来的NSData)
下面针对这三个方法,分别测试:
1. 第一个方法比较简单明了
NSString *url = @"http://www.baidu.com"; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; [webView loadRequest:request];
2. 这个方法可以自己用字符串拼接HTML代码,然后用webview进行装载,也可以转载那段js代码
NSString *html = @"hello <h1>world<h1>"; // @"<script language='javascript'>alert('hello');</script>'" [webView loadHTMLString:html baseURL:nil];
3. 使用UIWebView装载已经存在的html 页面。
1 NSBundle *bundle = [NSBundle mainBundle]; 2 NSString *path = [bundle pathForResource:@"word" ofType:@"html"]; 3 //word.html存在工程的资源目录中 4 NSData *data = [[NSData alloc]initWithContentsOfFile:path]; 5 [webView loadData:data MIMEType:nil textEncodingName:nil baseURL:nil];
其中MINEType可以设置成@"text/html"
textEncodingName可以设置成@"GBK" @"UTF-8"
为什么需要设置baseUrl?也就是data中有一些链接是图片,css都是外部文件,然后这些文件需要到一个目录上去找。baseUrl就是这个目录。
二、UIWebViewDelegate的用法
这个委托有4个方法,分别是:
- (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
分别是:加载前,开始加载,加载完毕,加载失败的回调。
相关推荐
一、UIWebView基本使用 UIWebView的使用主要包括初始化、加载网页内容以及设置代理。首先,我们需要创建一个UIWebView实例,然后通过`loadRequest:`方法加载URL请求或`loadHTMLString:baseURL:`方法加载HTML字符串。...
本资料“IOS之UIWebView的使用(基本知识)共7页.pdf”深入浅出地讲解了如何在iOS应用中集成并使用UIWebView。 一、UIWebView的基本概念 UIWebView是UIKit框架的一部分,主要负责加载和显示网络内容。它可以加载HTTP...
这个"01-UIWebView"的项目可能是对上述概念的一个实践,通过它你可以了解UIWebView的基本用法,并为后续更复杂的网页集成打下基础。不过,考虑到UIWebView的弃用,开发者应逐渐过渡到WKWebView,以保持应用的兼容性...
一、UIWebView基本使用 1. 初始化:UIWebView可以通过初始化方法创建,例如`initWithFrame:frame`,指定一个矩形区域作为web视图的大小。 ```swift let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: ...
在本文中,我们将深入探讨UIWebView的基本使用,包括网络资源地址字符串的处理以及UIWebView的属性和协议的综合应用。 首先,让我们了解一下**UIWebView的基本使用**。创建一个UIWebView实例很简单,只需要在代码中...
下面我们将深入探讨UIWebView的主要功能、使用方法以及相关的编程知识点。 1. **UIWebView介绍** UIWebView是UIKit框架的一部分,它允许iOS应用加载和显示HTML、CSS和JavaScript内容。开发者可以使用它来嵌入网页...
4. **UIWebView的代理方法**:为了获取UIWebView的加载状态和错误信息,我们需要遵循`UIWebViewDelegate`协议,并实现相关方法。比如`- (void)webViewDidStartLoad:(UIWebView *)webView`在网页开始加载时调用,`- ...
通过UIWebView的scrollView属性即可获得该对象,默认情况下网页长度超出设备视口长度后页面会滚动,用户使用手指滚动页面到页面边距并放开手指后页面会产生一个弹跳效果,去除这个效果的方法如下 ? 1 webView....
在iOS开发中,UIWebView是苹果提供的一...理解其基本用法、Delegate机制以及与JavaScript的交互方式,对于构建混合式或具有网络功能的iOS应用至关重要。然而,为了最佳性能和安全性,开发者应考虑使用更新的WKWebView。
2. 设置代理:为了监听网页加载的进度和状态,我们需要设置UIWebView的代理,遵循`UIWebViewDelegate`协议。 3. 加载HTML:使用`loadHTMLString:baseURL:`方法加载本地或远程的HTML字符串。例如: ```swift let ...
此外,`UIWebView`支持JavaScript与Objective-C之间的交互,通过实现`UIWebViewDelegate`的`webView:shouldStartLoadWithRequest:navigationType:`方法,可以拦截页面加载请求并进行处理,甚至执行自定义的行为。...
1. **Objective-C基础**:首先,理解OC的基本语法和面向对象编程概念是必要的,包括类的定义、方法的声明和实现、属性的使用等。 2. **UIWebView**: - **初始化和配置**:学习如何在界面中添加UIWebView,并设置...
开发者可以使用它来加载本地或远程的网页,并且可以通过JavaScript与Objective-C的交互(通过`UIWebViewDelegate`协议和`stringByEvaluatingJavaScriptFromString:`方法)实现一些高级功能。 在描述中提到的...
下面我们将深入探讨UIWebView的基本用法、功能以及如何构建这样的一个简易浏览器。 1. **UIWebView的基本介绍** UIWebView是iOS SDK中的一个类,它允许开发者在iOS应用内加载和显示HTML、CSS和JavaScript等网络...
尽管UIWebView在很多场景下仍然适用,但Apple推荐使用WKWebView作为替代,因为WKWebView提供了更好的性能和安全性。然而,对于兼容旧版本iOS的应用或者简单的需求,UIWebView仍然是一个实用的选择。理解并熟练运用...
2. UIWebViewDelegate:设置UIWebView的代理,可以监听到JavaScript的某些事件,比如`shouldStartLoadWithRequest`方法,可以捕获到JavaScript发起的URL请求。 三、JavaScript与Objective-C/Cocoa Touch交互 1. ...
对于JS向App传递信息,由于JavaScript运行在浏览器环境中,不能直接调用Objective-C的方法,我们需要借助`UIWebViewDelegate`中的`webView:didReceiveScriptMessage:`方法。首先,需要启用WKWebView的JavaScript消息...
首先,我们需要了解UIWebView的基本用法。UIWebView是UIKit框架的一部分,通过它可以加载HTML、CSS、JavaScript等Web内容。在Swift或Objective-C中,我们可以通过初始化UIWebView对象并将其添加到视图层级中来开始...
此外,iOS 10之后,推荐使用WKWebView替代UIWebView,因为WKWebView有更好的性能和安全性。不过,WKWebView的双向认证实现方式略有不同,需要配置WKWebViewConfiguration并设置WKProcessPool,这里就不详述了。 ...