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)
BOOL canGoBack;

//15.只读型bool值,用来判断当前页面是否可以前进

@property (nonatomic,
readonly, getter=canGoForward)
BOOL canGoForward;

//16.只读型bool值,用来判断当前页面是否可以加载刷新

@property (nonatomic,
readonly, getter=isLoading)
BOOL loading;

//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 allowsInlineMediaPlayback
NS_AVAILABLE_IOS(4_0);
// iPhone Safari defaults to NO. iPad Safari defaults to YES

//22.这个属性决定了HTML5视频可以自动播放还是需要用户启动播放。iPhone和iPad默认都是YES。

@property (nonatomic)
BOOL mediaPlaybackRequiresUserAction
NS_AVAILABLE_IOS(4_0);
// iPhone and iPad Safari both default to YES

//23.这个属性决定了从这个页面是否可以Air Play。iPhone和iPad上都是默认YES。

@property (nonatomic)
BOOL mediaPlaybackAllowsAirPlay
NS_AVAILABLE_IOS(5_0);
// iPhone and iPad Safari both default to YES

//24.这个值决定了网页内容的渲染是否在把内容全部假爱到内存中再去处理。如果设置为YES,只有网页内容加载到内存里了才会去渲染。默认为NO。

@property (nonatomic)
BOOL suppressesIncrementalRendering
NS_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 pageCount
NS_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

时间: 2024-11-03 21:52:55

UIWebView全部API学习。的相关文章

野兽的Angular Api 学习、翻译及理解 - - form.FormController、ngModel.NgModelController

野兽的ng api学习 -- form.FormController.ngModel.NgModelController form.FormController FormController跟踪所有他所控制的和嵌套表单以及他们的状态,就像有效/无效或者脏值/原始. 每个表单指令创建一个FormController实例. 方法: $addControl(); 给表单注册一个控制器. 使用了ngModelController的输入元素会在连接时自动执行. $removeControl(); 给表单注

@野兽的Angular Api 学习、翻译及理解 - - angular.module

@野兽的 ng api 学习 -- angular.module angular.module 创建一个全局的可用于检索和注入的Angular模块.所有Angular模块(Angular核心模块或者第三方模块)想要在应用里实现,都需要使用这个注入机制. 格式:angular.module(name,[requires],[configFn]); name :  string  创建的模块名称. [requires]: 字符串的数组  代表该模块依赖的其他模块列表,如果不依赖其他模块,则为空数组.

野兽的Angular Api 学习、翻译及理解 - - ngRoute Angular自带的路由

野兽的ng api学习 -- ngRoute ngRoute $routeProvider 配置路由的时候使用. 方法: when(path,route); 在$route服务里添加一个新的路由. path:该路由的路径. route:路由映射信息. controller:字符串或函数,指定控制器. controllerAs:一个用于控制器的标识符名称.. template:字符串或函数,html模板. templateUrl:字符串或函数,html模板的地址. resolve:对象,一个可选的

野兽的Angular Api 学习、翻译及理解 - - $templateCache 和 $templateRequest

野兽的ng api学习 -- $templateCache 和 $templateRequest $templateCache 第一次使用模板,它被加载到模板缓存中,以便快速检索.你可以直接将模板标签加载到缓存中,或者通过$templateCache服务. 通过script标签: <script type=”text/ng-template” id=”template.html”> <p>This is the content of the template</p> &

野兽的Angular Api 学习、翻译及理解 - - $sce 和 $sceDelegate

野兽的ng api学习 -- $sce 和 $sceDelegate $sce $sce 服务是AngularJs提供的一种严格上下文逸出服务. 严格上下文逸出服务(翻译水平有限,较渣...) 严格上下文逸出(SCE)是一种需要在一定的语境中导致AngularJS绑定值被标记为安全使用语境的模式.由用户通过ng-bind-html绑定任意HTML语句就是这方面的一个例子.我们称这些上下文语境为特权或者SCE. 下面代码是简化了的ngBindHtml实现(当然,这不是完整版ngBindHtml源码

野兽的Angular Api 学习、翻译及理解 - - $q 承诺与延迟

野兽的ng api学习 -- $q $q 一个帮助处理异步执行函数的服务.当他们做完处理时,使用它们的返回值(或异常). 受 Kris Kowa’s Q 的启发,这是一个实现promise/deferred对象的启用. $q的两种方式---这是一个更类似于Kris Kowal Q或jQuery的递延实现,另一种在一定程度上类似的ES6承诺. Deferred Api 一个被$q.defer()调用的deferred的新实例. deferred对象的目的是暴露相关承诺实例,以及APIs被执行的成功

野兽的Angular Api 学习、翻译及理解 - - $animate

野兽的ng api学习 -- $animate $animate $animate服务提供了基本的DOM操作功能如在DOM里插入.移除和移动元素,以及添加和删除类.这个服务是ngAnimate的核心服务,为CSS和Javascript提供了高档次的动画. $animate在Angular核心都是有效的,无论如何,这个服务为了支持所有动画须包含ngAnimate模块.否则,$animate只能做简单的DOM操作. 方法: enter(element,parent,after,[done]); 在D

野兽的Angular Api 学习、翻译及理解 - - ngInclude、ngTransclude

野兽的 ng api 学习 - - ngInclude.ngTransclude 这2个都是HTML DOM嵌入指令 ngInclude 读取,编译和插入外部的HTML片段. 格式:ng-include=“value”<ng-include src=”value” onload=“ex”autoscroll=“str”></ng-include>  class=”ng-include:value” value:string类型  模板id或者模板url ex:表达式,载入的时候执行

野兽的Angular Api 学习、翻译及理解 - - ngIf、ngSwitch、ngHide/ngShow

野兽的 ng api 学习 - - ngIf.ngSwitch.ngHide/ngShow 在组合这些ng指令写到一篇文章里的时候,基本是有规则的,野兽把功能相似相近的一类大多会组合到一起,方便理解和记忆. 这篇的三个指令也都是对DOM元素的操作,页面上显示/隐藏的判断,添加/移除的判断. ngIf ngIf指令会根据指定的表达式返回的boolean类型值对该元素做添加到/移除出Dom树的操作. 格式:ng-if=“value” value:表达式  返回结果为boolean类型. 使用代码: