网上找的收藏一下 http://www.myexception.cn/web/1888974.htmlhtml
最生僻的API作了下划线以及粗体的标注。百度上查了全是拷贝的同一份代码,并且只有代码没有解释,非常鄙视。web
//1. UIWebViewNavigationType枚举定义了页面中用户行为的分类ui
typedef NS_ENUM(NSInteger, UIWebViewNavigationType) {atom
UIWebViewNavigationTypeLinkClicked,//用户触发了一个连接lua
UIWebViewNavigationTypeFormSubmitted,//用户提交了一个表单spa
UIWebViewNavigationTypeBackForward,//用户触击前进前进或返回按钮代理
UIWebViewNavigationTypeReload,//用户触击从新加载的按钮orm
UIWebViewNavigationTypeFormResubmitted,//用户重复提交表单视频
UIWebViewNavigationTypeOther//发生了其余行为htm
};
//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;