UIkit框架之UIwebview
1.继承链:UIview:UIResponder:NSObject
2.使用loadHTMLString:baseURL:方法来加载本地的HTML文件,或者使用 loadRequest:方法来加载网络内容,使用stopLoading方法来停止加载网络内容
loading属性能够发现是否正在加载网络内容
3.使用goBack and goForward方法在按钮上执行回放或者前放网页,使用 canGoBack and canGoForward方法决定用户是否可以使用回放或者前放的功能
4.支持的文件格式:除了支持了HTML的文件,也支持Keynote、PDF和page文件,为了能够更加直观的使用app,最好就使用UItextview控件
5.设置委托
(1)@property(nonatomic, assign) id< UIWebViewDelegate> delegate :设置委托,遵守UIWebViewDelegate协议
6.加载内容
(1)- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMETypetextEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
data |
The content for the main page. |
MIMEType |
The MIME type of the content. |
encodingName |
The IANA encoding name as in |
baseURL |
The base URL for the content. |
解释:为应用插入指定路径的网络内容,UIWebView加载资源第三种方式 将本地数据转化为NSData嵌入到webView
(2)- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
string |
The content for the main page. |
baseURL |
The base URL for the content. |
解释:为应用嵌入web信息,用来加载本地的内容
(3)- (void)loadRequest:(NSURLRequest *)request :用来加载网页指定路径的内容,记得这个不可以加载本地的数据
(4)@property(nonatomic, readonly, strong) NSURLRequest*request :返回加载内容的路径,只读
(5)@property(nonatomic, readonly, getter=isLoading) BOOL loading :确认接收者是否正在加载,只读
(6)- (void)stopLoading :停止加载
(7)- (void)reload :重新加载当前内容
7.前放和后退
(1)@property(nonatomic, readonly, getter=canGoBack) BOOL canGoBack :这个值指定用户是否能够后退,只读
(2)@property(nonatomic, readonly, getter=canGoForward) BOOL canGoForward :这个值指定用户是否能够前放,只读
(3)- (void)goBack :进行后退操作
(4)- (void)goForward :进行前放操作
8.设置web内容的属性
(1)@property(nonatomic) BOOL allowsLinkPreview :是否能够对指定连接的内容进行预览
(2)@property(nonatomic) BOOL scalesPageToFit :是否能够让webpage铺满视图,是否能够让用户进行改变比例
(3)@property(nonatomic, readonly, strong) UIScrollView*scrollView :获取和web view连接的滚动视图
(4)@property(nonatomic) BOOL suppressesIncrementalRendering :布尔会值决定是否要在所有内容加载到内存中的时候才可以进行渲染
(5)@property(nonatomic) BOOL keyboardDisplayRequiresUserAction :指定键盘是否能够根据用户的需要在web view中弹出
(6)@property(nonatomic) UIDataDetectorTypesdataDetectorTypes :获取或者设置数据的类型
9.运行JavaScript
(1)- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script :返回JavaScript的脚本
10.管理媒体的回放
(1)@property(nonatomic) BOOL allowsInlineMediaPlayback :是否允许HTML5的视频play inline或者是否能够满屏播放
(2)@property(nonatomic) BOOL mediaPlaybackRequiresUserAction :决定是让视频自动播放还是让用户手动播放
(3)@property(nonatomic) BOOL mediaPlaybackAllowsAirPlay :是否允许共享播放视频
(4)@property(nonatomic) BOOL allowsPictureInPictureMediaPlayback :是否允许画中画能够进行回放
11.管理页面
(1)@property(nonatomic) CGFloatgapBetweenPages :获取设置两个pages之间的相隔的距离和位置
(2)@property(nonatomic, readonly) NSUIntegerpageCount :返回页的数量,只读
(3)@property(nonatomic) CGFloatpageLength :获取每个page的长度
(4)@property(nonatomic) UIWebPaginationBreakingModepaginationBreakingMode :这个属性决定了CSS属性是采用column-break 还是page-breaking样式
(5)@property(nonatomic) UIWebPaginationModepaginationMode :设置是否使用分页的形式来展示web内容
12.数据类型
(1)UIWebViewNavigationType的类型
UIWebViewNavigationTypeLinkClicked, //用户触发了一个链接
UIWebViewNavigationTypeFormSubmitted, //用户提交了一个表单
UIWebViewNavigationTypeBackForward, //用户触击前进前进或返回按钮
UIWebViewNavigationTypeReload, //用户触击重新加载的按钮
UIWebViewNavigationTypeFormResubmitted, //用户重复提交表单
UIWebViewNavigationTypeOther //发生了其他行为
(2)UIWebPaginationBreakingMode的类型
UIWebPaginationBreakingModePage, //默认设置是这个属性,CSS属性以页样式。
UIWebPaginationBreakingModeColumn //当UIWebPaginationBreakingMode设置这个属性的时候,这个页面内容CSS属性以column-break 代替page-breaking样式。
后面的这些事别人写的:
UIWebView全部API学习。
最生僻的API做了下划线以及粗体的标注。百度上查了全是拷贝的同一份代码,而且只有代码没有解释,很是鄙视。
//1. UIWebViewNavigationType枚举定义了页面中用户行为的分类
typedef NS_ENUM(NSInteger, UIWebViewNavigationType) {
UIWebViewNavigationTypeLinkClicked,//用户触发了一个链接
UIWebViewNavigationTypeFormSubmitted,//用户提交了一个表单
UIWebViewNavigationTypeBackForward,//用户触击前进前进或返回按钮
UIWebViewNavigationTypeReload,//用户触击重新加载的按钮
UIWebViewNavigationTypeFormResubmitted,//用户重复提交表单
UIWebViewNavigationTypeOther//发生了其他行为
};
//2. 加载内容关于分页显示几种不同类型
typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
UIWebPaginationModeUnpaginated,
UIWebPaginationModeLeftToRight,
UIWebPaginationModeTopToBottom,
UIWebPaginationModeBottomToTop,
UIWebPaginationModeRightToLeft
};
//3.这个枚举决定了webView加载页面具有CSS属性时是使用页的样式还是以列的样式。
typedef NS_ENUM(NSInteger, UIWebPaginationBreakingMode) {
UIWebPaginationBreakingModePage,//默认设置是这个属性,CSS属性以页样式。
UIWebPaginationBreakingModeColumn//当UIWebPaginationBreakingMode设置这个属性的时候,这个页面内容CSS属性以column-break 代替page-breaking样式。
};
@class UIWebViewInternal;
@protocol UIWebViewDelegate;
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWebView : UIView<NSCoding, UIScrollViewDelegate> {
@private
UIWebViewInternal *_internal;
}
//4.实现WebView代理方法
@property (nonatomic, assign) id <UIWebViewDelegate> delegate;
//5.WebView的scrollView属性
@property (nonatomic, readonly, retain) UIScrollView*scrollView NS_AVAILABLE_IOS(5_0);
//6.UIWebView加载资源最常用的一种方式,直接给出URL进行加载
- (void)loadRequest:(NSURLRequest *)request;
//7.UIWebView加载资源第二种方式,将本地html文件内容嵌入到WebView
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
// 8. UIWebView加载资源第三种方式 将本地数据转化为NSData嵌入到webView
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
//9.URL请求
@property (nonatomic, readonly, retain) NSURLRequest*request;
//10.webView加载刷新
- (void)reload;
//11. webView停止加载
- (void)stopLoading;
//12.当webView跳转了一个网页时,执行goBack可以回退到之前的界面。
- (void)goBack;
//13..执行goForward前进一个之前跳过的界面
- (void)goForward;
//14.只读型bool值,用来判断当前页面是否可以回退
@property (nonatomic, readonly, getter=canGoBack) BOOLcanGoBack;
//15.只读型bool值,用来判断当前页面是否可以前进
@property (nonatomic, readonly, getter=canGoForward) BOOLcanGoForward;
//16.只读型bool值,用来判断当前页面是否可以加载刷新
@property (nonatomic, readonly, getter=isLoading) BOOLloading;
//17.这个方法需要等到webView加载完毕之后才会调用,通过它我们可以很方便的操作UIWebView中的页面元素。参数script用来传进当前页面文件元素字符串,对传进来的字符串进行相应的操作,例如[webview stringByRvaluaingJavaScriptFromString:@“document.title”],可以得到页面的title
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
//18.是否让内容伸缩至适应屏幕当前尺寸
@property (nonatomic) BOOL scalesPageToFit;
//19.这个属性如果设置为YES,当进入到页面视图可以自动检测电话号码,让用户可以单机号码进行拨打,不过现已弃用。
@property (nonatomic) BOOL detectsPhoneNumbers NS_DEPRECATED_IOS(2_0, 3_0);
//20.这个属性可以设定使电话号码,网址,电子邮件和符合格式的日期等文字变为连接文字。
@property (nonatomic) UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);
//21.这个属性决定了页面用内嵌HTML5播放视频还是用本地的全屏控制。为了内嵌视频播放,不仅仅需要在这个页面上设置这个属性,还需要在HTML的viedeo元素必须包含webkit-playsinline属性。默认iPhone为NO,iPad为YES。
@property (nonatomic) BOOL allowsInlineMediaPlaybackNS_AVAILABLE_IOS(4_0); // iPhone Safari defaults to NO. iPad Safari defaults to YES
//22.这个属性决定了HTML5视频可以自动播放还是需要用户启动播放。iPhone和iPad默认都是YES。
@property (nonatomic) BOOL mediaPlaybackRequiresUserActionNS_AVAILABLE_IOS(4_0); // iPhone and iPad Safari both default to YES
//23.这个属性决定了从这个页面是否可以Air Play。iPhone和iPad上都是默认YES。
@property (nonatomic) BOOL mediaPlaybackAllowsAirPlayNS_AVAILABLE_IOS(5_0); // iPhone and iPad Safari both default to YES
//24.这个值决定了网页内容的渲染是否在把内容全部假爱到内存中再去处理。如果设置为YES,只有网页内容加载到内存里了才会去渲染。默认为NO。
@property (nonatomic) BOOL suppressesIncrementalRenderingNS_AVAILABLE_IOS(6_0); // iPhone and iPad Safari both default to NO
//25.这个属性如果设置为YES,用户必须明确的点击页面上的元素或者相关联的输入页面来显示键盘,。如果设置为NO,一个元素的焦点事件就会导致输入视图的显示和自动关联这个元素。
@property (nonatomic) BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0); // default is YES
//26.iOS7之后的新API,设置页面分页模型选择。
@property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);
//27.这个属性决定了CSS属性是采用column-break 还是page-breaking样式。
@property (nonatomic) UIWebPaginationBreakingMode paginationBreakingMode NS_AVAILABLE_IOS(7_0);
//28.分页的长度
@property (nonatomic) CGFloat pageLength NS_AVAILABLE_IOS(7_0);
//29.多个页面之间差距值
@property (nonatomic) CGFloat gapBetweenPages NS_AVAILABLE_IOS(7_0);
//30.分页的个数。
@property (nonatomic, readonly) NSUInteger pageCountNS_AVAILABLE_IOS(7_0);
@end
@protocol UIWebViewDelegate <NSObject>
@optional
//31.UIWebView的代理方法,当webview开始加载请求的时候回去调用,可以拦截一些用户的行为是否加载。返回YES代表允许加载,返回NO代表停止加载。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
//32.webView加载开始的时候调用。
- (void)webViewDidStartLoad:(UIWebView *)webView;
//33.webView加载完毕的时候调用。
- (void)webViewDidFinishLoad:(UIWebView *)webView;
//34.webView加载失败的时候调用
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
@end
UIkit框架之UIwebview的更多相关文章
- UIKit框架使用总结--看看你掌握了多少
一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...
- Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)
原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...
- UIKit框架
在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...
- iOS学习32之UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- 基础框架Fundation和UIkit框架的定义和使用
Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...
- iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。
转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...
- iOS开发UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架
Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...
- UIKit 框架之UIView二
下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...
随机推荐
- Unity3D中Console控制台的扩展
Assert Store上有一个Editor Console Pro,功能非常全面,百度也能搜到破解.如果有需要建议使用,不要再造车轮 起初因为自带Console功能太弱,有不少可以提升空间.于是尝试 ...
- c++链表归并排序的迭代版本
之前用js写了个归并排序非递归版,而这一次,c++封装链表的时候也遇到了一个归并排序的接口.邓老师实现了递归版本的归并排序,但是递归的调用函数栈的累积是很占内存空间的.于是乎,那试试在链表结构上实现以 ...
- 通过Mac远程调试iPhone/iPad上的网页(转)
我们知道在 Mac/PC 上的浏览器都有 Web 检查器这类的工具(如最著名的 Firebug)对前端开发进行调试,而在 iPhone/iPad 由于限于屏幕的大小和触摸屏的使用习惯,直接对网页调试非 ...
- 448. Find All Numbers Disappeared in an Array Add to List
题目描述 题目分析 有个[1,n]的条件要充分利用起来. 题目代码 public class Solution { public List<Integer> findDisappeared ...
- Linux文件管理相关命令
Linux文件管理相关命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...
- Oracle在归档模式下恢复
=============== 数据库的完全恢复 =============== 在归档模式下数据库完全恢复时,数据库所经过的状态如下: 1.利用备份修复(Restores)损坏或丢失的数据文件,即将 ...
- Monkey测试的策略和分析
Monkey测试针对不同的对象和不同的目的采用不同的测试方案,首先测试的对象.目的及类型如下: 测试的类型分为:应用程序的稳定性测试和压力测试 测试对象分为:单一apk和apk集合 测试的目的分为:解 ...
- css代码段
css文字超出省略 .demo{ display:-webkit-box; overflow:hidden; text-overflow:ellipsis; -webkit-line-clamp:2; ...
- 关于tomcat会在url末尾自动追加斜杠(/)
今天,突然发现一个问题, 比如我的请求路径为 http://ip:port/my_project/myapp, 在浏览器中敲入这个地址,然后会显示 http://ip:port/my_project ...
- tomcat通过conf-Catalina-localhost目录发布项目详解 摘自:http://www.cnblogs.com/iyangyuan/archive/2013/09/12/3316444.html
Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目录下添加配置文件,来发布项目,是最佳选择. 因为这样对tomcat的入侵性最小,只需 ...