網上找的收藏一下 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;