UIWebView的屬性
//代理屬性
@property (nullable, nonatomic, assign) id <UIWebViewDelegate> delegate;
//WebView内部的scrollView,隻讀,可以通過這個屬性設定scrollView的代理,就可以控制整個WebView的滾動事件
@property (nonatomic, readonly, strong) UIScrollView *scrollView NS_AVAILABLE_IOS(5_0);
NSURLRequest介紹
//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還在加載資料,所有資料加載完畢後,loading就會為NO????
@property (nonatomic, readonly, getter=isLoading) BOOL loading;
//????
@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
//設定音頻播放是否支援AriPlay功能???
@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
//iOS7新特性
//枚舉類型,當網頁的大小超出view時,将網頁以翻頁的效果展示
@property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);
typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
UIWebPaginationModeUnpaginated,//不使用翻頁效果
UIWebPaginationModeLeftToRight,//從左向右翻頁
UIWebPaginationModeTopToBottom,//從上向下翻頁
UIWebPaginationModeBottomToTop,//從下向上翻頁
UIWebPaginationModeRightToLeft//從右向左翻頁
} __TVOS_PROHIBITED;
//這個屬性決定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);
//iOS9新增
@property (nonatomic) BOOL allowsPictureInPictureMediaPlayback NS_AVAILABLE_IOS(9_0);
@property (nonatomic) BOOL allowsLinkPreview NS_AVAILABLE_IOS(9_0); // default is NO
UIWebView的代理方法
/**
JS互動時的重點方法
UIWebView的代理方法,當webview開始加載請求的時候回去調用,可以攔截一些使用者的行為是否加載。傳回YES代表允許加載,傳回NO代表停止加載。
*/
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
/**
webView加載開始的時候調用
*/
- (void)webViewDidStartLoad:(UIWebView *)webView;
/**
webView加載完畢的時候調用。
*/
- (void)webViewDidFinishLoad:(UIWebView *)webView;
/**
webView加載失敗的時候調用
*/
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
UIWebView的對象方法
//加載一個請求(常用)
- (void)loadRequest:(NSURLRequest *)request;
//加載本地HTML(常用)
- (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
//加載Data資料
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
//重新整理網頁
- (void)reload;
//停止網頁加載内容
- (void)stopLoading;
//後退
- (void)goBack;
//前進
- (void)goForward;
//執行JS方法
- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
相關文章
iOS-NSURLRequest
NSURLRequest和NSMutableURLRequest