UIWebView的使用
iOS中UIWebView的使用详解
一、初始化与三种加载方式
UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种:
第一种:
//这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:
- (void)loadRequest:(NSURLRequest *)request; UIWebView * view = [[UIWebView alloc]initWithFrame:self.view.frame];
[view loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
[self.view addSubview:view];
会得到如下的效果:

//第二种:这个方法需要将httml文件读取为字符串,其中baseURL是我们自己设置的一个路径,用于寻找html文件中引用的图片等素材。 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; //第三种:这个方式使用的比较少,但也更加自由,其中data是文件数据,MIMEType是文件类型,textEncodingName是编码类型,baseURL是素材资源路径。 - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString*)textEncodingName baseURL:(NSURL *)baseURL;
二、一些常用的属性和变量
@property (nonatomic, assign) id <UIWebViewDelegate> delegate;//设置webView的代理 @property (nonatomic, readonly, retain) UIScrollView *scrollView;//内置的scrollView @property (nonatomic, readonly, retain) NSURLRequest *request;//URL请求 - (void)reload;//重新加载数据 - (void)stopLoading;//停止加载数据 - (void)goBack;//返回上一级 - (void)goForward;//跳转下一级 @property (nonatomic, readonly, getter=canGoBack) BOOL canGoBack;//获取能否返回上一级 @property (nonatomic, readonly, getter=canGoForward) BOOL canGoForward;//获取能否跳转下一级 @property (nonatomic, readonly, getter=isLoading) BOOL loading;//获取是否正在加载数据 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;//通过javaScript操作web数据 @property (nonatomic) BOOL scalesPageToFit;//设置是否缩放到适合屏幕大小 @property (nonatomic) UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);//设置某些数据变为链接形式,这个枚举可以设置如电话号,地址,邮箱等转化为链接 @property (nonatomic) BOOL allowsInlineMediaPlayback NS_AVAILABLE_IOS(4_0);//设置是否使用内联播放器播放视频 @property (nonatomic) BOOL mediaPlaybackRequiresUserAction NS_AVAILABLE_IOS(4_0);//设置视频是否自动播放 @property (nonatomic) BOOL mediaPlaybackAllowsAirPlay NS_AVAILABLE_IOS(5_0);//设置音频播放是否支持ari play功能 @property (nonatomic) BOOL suppressesIncrementalRendering NS_AVAILABLE_IOS(6_0);//设置是否将数据加载如内存后渲染界面 @property (nonatomic) BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0);//设置用户交互模式
三、iOS7中的一些新特性
下面这些属性是iOS7之后才有的,通过他们可以设置更加有趣的web体验
@property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);//这个属性用来设置一种模式,当网页的大小超出view时,将网页以翻页的效果展示,枚举如下:
typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
UIWebPaginationModeUnpaginated,//不使用翻页效果
UIWebPaginationModeLeftToRight,//将网页超出部分分页,从左向右进行翻页
UIWebPaginationModeTopToBottom,//将网页超出部分分页,从上向下进行翻页
UIWebPaginationModeBottomToTop,//将网页超出部分分页,从下向上进行翻页
UIWebPaginationModeRightToLeft//将网页超出部分分页,从右向左进行翻页
};
@property (nonatomic) CGFloat pageLength NS_AVAILABLE_IOS(7_0);//设置每一页的长度
@property (nonatomic) CGFloat gapBetweenPages NS_AVAILABLE_IOS(7_0);//设置每一页的间距
@property (nonatomic, readonly) NSUInteger pageCount NS_AVAILABLE_IOS(7_0);//获取分页数
四、webView协议中的方法
- (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的使用的更多相关文章
- AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking
AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结. 前言 上一篇我们总结了 UIActivityIndicatorVie ...
- ios UIWebView自定义Alert风格的弹框
之前开发过一个App,因为公司之前写好了网页版的内容和安卓版本的App,我进去后老板要求我ios直接用网页的内容,而不需要自己再搭建框架.我一听,偷笑了,这不就是一个UIWebView吗?简单! 但是 ...
- iOS网络3—UIWebView与WKWebView使用详解
一.整体介绍 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView.通过简单的测试即可发现UIWebView占用过多内存,且 ...
- IOS 网络浅析-(十二 UIWebView简介)
在这篇随笔里,我们只要知道UIWebView是什么就可以了. UIWebView 是苹果提供的用来展示网页的UI控件,它也是最占内存的控件. iOS8.0之后出现了webkit框架,WKWebView ...
- UIWebView获取网页点击事件
//接收web事件 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request nav ...
- IOS UIWebView 下拉刷新功能的简单实现
1.运行效果图 2.swift 代码的实现 import UIKit class RefreshWebViewController: UIViewController,UIScrollViewDele ...
- UI控件(UIWebView)
本文主要记录UIWebView三方面内容: 1.基本的加载网页链接或文件: 2.网页js调用原生,也就是Cordova混合架构的原理: 3.原生调用js程序: 原生部分主要代码: @implement ...
- UIwebView 和 H5交互详情
背景: 最近公司准备上一个只有原生登录界面 + H5网页 ,并且支持ios7.0 以上系统的混合app;这可把我难住了,原生的UI界面我可以正写反写各种style把界面搭建起来.而要这个app的难点在 ...
- ios UIWebView 在开发中加载文件
UIWebView 在实际应用中加载文件的时候,有两种情况, 1. 实行在线预览 , 2. 下载到本地,再查看 如果是第一种情况: NSURL *url = [NSURL URLWithString: ...
- iOS UIWebView 拦截点击事件(双击缩放)
在平时的开发中,要使用到webview,但类似微信的webview在数据没有加载完成的时候 双击屏幕,webview不会缩放,其实实现这个功能很简单 代码是用swift写的 class YYSimpl ...
随机推荐
- 从UWP到SWIFT - TableBarController 和 Pivot
现在我还不是特别能适应swift中页面做bar的做法,感觉很奇怪. 现在我正在做一个简单的新浪微博,有一个主页,顶部有导航栏,底部是选项卡. 如果用wup来做的话,顶部应该是我们自己写的Usercon ...
- TeamWork-天气美食
一. 团队情况 Hello,欢迎来到我们"Code Man"队的第一次团队作业页面,"代码侠"很明显我们是一个编程队伍,由大三在读的6位同班同学组成 ...
- CodeVS 线段覆盖1~5
#include <bits/stdc++.h> using namespace std; ; struct Info{int l,r;}P[Maxn]; int n,Cnt,F[Maxn ...
- linux编译c文件
1.创建.c文件,比如在firstmake文件夹创建了一个a.c文件,那么编译语句为: gcc -o firstmake a.c //格式为文件夹名 文件名 2.然后就会生成一个firstmake.o ...
- SE homework2
1. (1) Fault: for循环语句中的条件表达式i > 0,不能检查到数组的第一个元素,应该为 i >= 0 . (2) test:x=[]:y=3 Expected = -1 A ...
- jquery.extend方法
jquery.extend()用来扩展jquery中方法,实现插件. 1.jQuery.extend函数详细用法! 扩展jQuery静态方法. 1$.extend({ 2test:function() ...
- XML代码生成器——XMLFACTORY 简介(四)
XML代码生成器——XMLFACTORY 简介(四) 这一篇我们讲“类属性”页签的配置功能,您将了解到:如何为元素子值指定类属性的名称,数据类型,及容器类型. 如果,你没看过这个系列的第一篇文章,请先 ...
- C语言的作用域规则
作用域规则 程序中名字的作用域,通俗的讲,就是这个名字在程序中的使用范围.在C语言中,作用域的规则相对比较简单,主要分为 全局作用域 和 局部作用域 两种. 一个变量如果定义在函数中,那么这个变量的作 ...
- 新冲刺Sprint3(第四天)
一.Sprint介绍 实现了SQLite数据库记录自动登录.注销功能 真机测试效果图: 二.Sprint周期 看板: 燃尽图:
- margin负值的几种妙用
1:定位+margin负值实现元素水平垂直居中 div{ position: absolute; z-index: 1; left: 50%; margin-left: -50px; width: 1 ...