UIWebView和UIWebViewDelegate的基本用法

一、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代码

1    NSString *html = @"hello <h1>world<h1>";
2 // @"<script language='javascript'>alert('hello');</script>'"
3 [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和UIWebViewDelegate的基本用法的更多相关文章

  1. UIWebView和UIWebViewDelegate的基本用法 (转)

    一.UIWebView主要有三种方法实现页面的装载,分别是: 1. (void)loadRequest:(NSURLRequest *)request;  (直接装载URL) 2. (void)loa ...

  2. ios开发入门篇(四):UIWebView结合UISearchBar的简单用法

     UIWebView是ios开发中比较常用的一个控件.我们可以用它来浏览网页.打开文档等,今天笔者在这里简单介绍下UIWebView和UISearchBar结合起来的用法,做一个简单的类浏览器. 一: ...

  3. js(javascript)与OC(Objective-C)交互

    实质上oc与js的通信交互就是发送消息,也即函数调用,iOS7以后官方公布JavaScriptCore framework中很方便我们对他们之间的相互调用.在以前我们只能通过UIWebView的UIW ...

  4. iOS之与JS交互通信

    随着苹果SDK的不断升级,越来越多的新特性增加了进来,本文主要讲述从iOS6至今,Native与JavaScript的交互方法 一.UIWebview && iframe && ...

  5. JavaScriptCore-b

    JavaScriptCore提供了JavaScript和Objective-C桥接的Obj-C API.JavaScriptCore提供了让我们脱离UIWebView执行JavaScript脚本的能力 ...

  6. MJRefresh在UITableView中的使用

    前言 MJRefresh是一个好用的上下拉刷新的控件,github地址如下:https://github.com/CoderMJLee/MJRefresh 很多app都使用这个控件,我们也来了解一下它 ...

  7. OC与JS交互之JavaScriptCore

    JavaScriptCore提供了JavaScript和Objective-C桥接的Obj-C API.JavaScriptCore提供了让我们脱离UIWebView执行JavaScript脚本的能力 ...

  8. WebViewJavascriptBridge的简单应用

    原文链接:http://www.jianshu.com/p/ca496cb680fe前言 当下,很多APP里面都会有HTML5网页,我们除了简单的用WebView加载显示外,很多情况下,我们还需要和W ...

  9. iOS 混合开发之 Cordova 实践

    在15年时,之前公司使用 Cordova 做混合开发使用,后来公司没有用到了,现在重新记录下. Cordova (官网:http://cordova.apache.org/)简介: Apache Co ...

随机推荐

  1. AE实现点击一个要素,并显示其属性

    第一步:根据鼠标点击处的点,找到被选中的要素 public IFeature Find2(IPoint pPoint) { ITopologicalOperator pTopoOpe = pPoint ...

  2. java学习笔记_MIDI_GUI

    import javax.sound.midi.*; import javax.swing.*; import java.awt.event.*; import java.awt.*; class M ...

  3. 升级ssh编译错误

    升级ssh 编译的时候遇到PAM headers not found,然后需要安装 pam-devel-1.1.1-20.el6.x86_64,自己下载了rpm包,安装报错,然后用yum -y ins ...

  4. java计算过G文件md5 值计算

    package io.bigdata; import java.io.File; import java.io.FileInputStream; import java.io.IOException; ...

  5. Unity学习笔记(3):获取对象

    在上一篇文章中(Unity映射注册)中概要介绍了Unity中的映射机制,本节主要介绍对象获取,包括默认获取,通过名称获取,获取全部对象,同时通过加载配置文件,然后再获取对象. 通过代码获取对象 方式1 ...

  6. htmlcleaner

    String xpath = "//div"; Object[] myNodes = node.evaluateXPath(xpath); for (Object obj : my ...

  7. PHP SQL注入的防范

    说到网站安全就不得不提到SQL注入(SQL Injection),如果你用过ASP,对SQL注入一定有比较深的理解,PHP的安全性相对较高,这是因为MYSQL4以下的版本不支持子语句,而且当php.i ...

  8. 2W/月和1W/月的工作,你会怎么选?

    只看标题的话,肯定有不少人会选择月薪 2W 的工作,很明显,钱多嘛!但实际上,这里是有前提的,完整的问题如下: 一份月薪 2W,但加班无底线,基本没有自由时间的工作,和一份月薪 1W,但正常工作时长, ...

  9. Python数据结构——二叉树的实现

    1. 二叉树 二叉树(binary tree)中的每个节点都不能有多于两个的儿子. 1.1 二叉树列表实现 如上图的二叉树可用列表表示: tree=['A', #root ['B', #左子树 ['D ...

  10. .NET基础之集合

    集合可以说是数组的超集,集合可以维护对象数组,集合包含了更高级的功能.例如控制对其包含的对象的访问.搜索和排序等.数组是固定的,一旦我们创建好了数组,不能在现有数组的末尾添加新项,除非我们创建新的数组 ...