UIWebview屬性:
@property (nullable, nonatomic, assign) id <UIWebViewDelegate> delegate;
// 這個是webView內(nèi)部的scrollView 只讀,但是利用這個屬性,設(shè)置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,才能前進(jìn)
@property (nonatomic, readonly, getter=canGoForward) BOOL canGoForward;
// 這個屬性很好用,如果為YES證明webView還在加載數(shù)據(jù),所有數(shù)據(jù)加載完畢后,webView就會為No
@property (nonatomic, readonly, getter=isLoading) BOOL loading;
// YES代表網(wǎng)頁可以縮放,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);
// 設(shè)置是否使用內(nèi)聯(lián)播放器播放視頻
@property (nonatomic) BOOL allowsInlineMediaPlayback NS_AVAILABLE_IOS(4_0);
// iPhone Safari defaults to NO. iPad Safari defaults to YES
// 設(shè)置視頻是否自動播放
@property (nonatomic) BOOL mediaPlaybackRequiresUserAction NS_AVAILABLE_IOS(4_0); // iPhone and iPad Safari both default to YES
// 設(shè)置音頻播放是否支持ari play功能
@property (nonatomic) BOOL mediaPlaybackAllowsAirPlay
NS_AVAILABLE_IOS(5_0); // iPhone and iPad Safari both default to YES
// 設(shè)置是否將數(shù)據(jù)加載入內(nèi)存后渲染界面
@property (nonatomic) BOOL suppressesIncrementalRendering NS_AVAILABLE_IOS(6_0); // iPhone and iPad Safari both default to NO
// 設(shè)置用戶是否能打開keyboard交互
@property (nonatomic) BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0); // default is YES
// 這個屬性用來設(shè)置一種模式,當(dāng)網(wǎng)頁的大小超出view時,將網(wǎng)頁以翻頁的效果展示
@property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);
typedef NS_ENUM(NSInteger, UIWebPaginationMode) { UIWebPaginationModeUnpaginated, //不使用翻頁效果 UIWebPaginationModeLeftToRight, //將網(wǎng)頁超出部分分頁,從左向右進(jìn)行翻頁 UIWebPaginationModeTopToBottom, //將網(wǎng)頁超出部分分頁,從上向下進(jìn)行翻頁 UIWebPaginationModeBottomToTop, //將網(wǎng)頁超出部分分頁,從下向上進(jìn)行翻頁 UIWebPaginationModeRightToLeft //將網(wǎng)頁超出部分分頁,從右向左進(jìn)行翻頁 };
// 這個屬性決定CSS的屬性分頁是可用還是忽略。默認(rèn)是UIWebPaginationBreakingModePage
@property (nonatomic) UIWebPaginationBreakingMode paginationBreakingMode NS_AVAILABLE_IOS(7_0);
// 設(shè)置每一頁的長度
@property (nonatomic) CGFloat pageLength NS_AVAILABLE_IOS(7_0);
// 設(shè)置每一頁的間距
@property (nonatomic) CGFloat gapBetweenPages NS_AVAILABLE_IOS(7_0);
// 獲取頁數(shù)
@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的協(xié)議:
// 請求發(fā)送前都會調(diào)用該方法,返回NO則不處理這個請求
//此方法中,通過Html的iframe來制造頁面刷新再解析自定義協(xié)議
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
//請求發(fā)送之后開始接收響應(yīng)之前會調(diào)用這個方法
- (void)webViewDidStartLoad:(UIWebView *)webView;
//請求發(fā)送之后,并且服務(wù)器已經(jīng)返回響應(yīng)之后調(diào)用該方法
- (void)webViewDidFinishLoad:(UIWebView *)webView;
//網(wǎng)頁請求失敗則會調(diào)用該方法
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
UIWebView的方法:
// 加載Data數(shù)據(jù)
- (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
// 刷新網(wǎng)頁
- (void)reload;
// 停止網(wǎng)頁加載內(nèi)容
- (void)stopLoading;
// 后退
- (void)goBack;
// 前進(jìn)
- (void)goForward;
// 執(zhí)行JS方法
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;