UIWebview屬性:
@property (nullable, nonatomic, assign) id <UIWebViewDelegate> delegate;
// 這個是webView內部的scrollView 只讀,但是利用這個屬性,設置scrollView的代理,就可以控制整個webView的滾動事件
@property (nonatomic, readonly, strong) UIScrollView *scrollView NS_AVAILABLE_IOS(5_0);
// webView的請求,這個屬性一般在整個加載完成后才能拿到
@property (nullable, nonatomic, readonly, strong) NSURLRequest *request;
// 如果這個屬性為YES,才能后退
@property (nonatomic, readonly, getter=canGoBack) BOOL canGoBack;
// 如果這個屬性為YES,才能前進
@property (nonatomic, readonly, getter=canGoForward) BOOL canGoForward;
// 這個屬性很好用,如果為YES證明webView還在加載數據,所有數據加載完畢后,webView就會為No
@property (nonatomic, readonly, getter=isLoading) BOOL loading;
// YES代表網頁可以縮放,NO代表不可以縮放
@property (nonatomic) BOOL scalesPageToFit;
@property (nonatomic) BOOL detectsPhoneNumbers NS_DEPRECATED_IOS(2_0, 3_0);
@property (nonatomic) UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);
// 設置是否使用內聯播放器播放視頻
@property (nonatomic) BOOL allowsInlineMediaPlayback NS_AVAILABLE_IOS(4_0);
// iPhone Safari defaults to NO. iPad Safari defaults to YES
// 設置視頻是否自動播放
@property (nonatomic) BOOL mediaPlaybackRequiresUserAction NS_AVAILABLE_IOS(4_0); // iPhone and iPad Safari both default to YES
// 設置音頻播放是否支持ari play功能
@property (nonatomic) BOOL mediaPlaybackAllowsAirPlay
NS_AVAILABLE_IOS(5_0); // iPhone and iPad Safari both default to YES
// 設置是否將數據加載入內存后渲染界面
@property (nonatomic) BOOL suppressesIncrementalRendering NS_AVAILABLE_IOS(6_0); // iPhone and iPad Safari both default to NO
// 設置用戶是否能打開keyboard交互
@property (nonatomic) BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0); // default is YES
// 這個屬性用來設置一種模式,當網頁的大小超出view時,將網頁以翻頁的效果展示
@property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);
typedef NS_ENUM(NSInteger, UIWebPaginationMode) { UIWebPaginationModeUnpaginated, //不使用翻頁效果 UIWebPaginationModeLeftToRight, //將網頁超出部分分頁,從左向右進行翻頁 UIWebPaginationModeTopToBottom, //將網頁超出部分分頁,從上向下進行翻頁 UIWebPaginationModeBottomToTop, //將網頁超出部分分頁,從下向上進行翻頁 UIWebPaginationModeRightToLeft //將網頁超出部分分頁,從右向左進行翻頁 };
// 這個屬性決定CSS的屬性分頁是可用還是忽略。默認是UIWebPaginationBreakingModePage
@property (nonatomic) UIWebPaginationBreakingMode paginationBreakingMode NS_AVAILABLE_IOS(7_0);
// 設置每一頁的長度
@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);
@property (nonatomic) BOOL allowsPictureInPictureMediaPlayback NS_AVAILABLE_IOS(9_0);
@property (nonatomic) BOOL allowsLinkPreview NS_AVAILABLE_IOS(9_0); // default is NO
@end
UIWebView的協議:
// 請求發送前都會調用該方法,返回NO則不處理這個請求
//此方法中,通過Html的iframe來制造頁面刷新再解析自定義協議
- (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的方法:
// 加載Data數據
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
// 加載本地HTML
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
// 加載一個請求
- (void)loadRequest:(NSURLRequest *)request
// 刷新網頁
- (void)reload;
// 停止網頁加載內容
- (void)stopLoading;
// 后退
- (void)goBack;
// 前進
- (void)goForward;
// 執行JS方法
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;