iOS开发--UIWebView
来源:互联网 发布:网络攻防技术 编辑:程序博客网 时间:2024/06/03 14:33
UIWebView-->iOS进行混合开发的桥梁,在iOS开发中常用于加载网页和html文件
现在对于混合式(传统模式与PC网页端相结合)移动端开发(开发成本低、速度快)越来越流行。在Android开发中有WebView作为混合模式开发的桥梁,在iOS中也同样有一个 UIWebView 组件来作为混合模式开发的桥梁。
1.初始化[继承自UIView]
继承自UIView,所以初始化方法类似UIView
eg:
UIWebView *webView = [[UIWebViewalloc]initWithFrame:self.view.frame];
[self.viewaddSubview:webView];
2.加载数据[三种]第一种:
- (void)loadRequest:(NSURLRequest *)request;
[webView loadRequest:[NSURLRequestrequestWithURL:[NSUR URLWithString:@"http://www.baidu.com"]]];
这是加载网页最常用的方式,通过一个网页的url来进行加载,这个url可以是远程的,也可以是本地的。第二种:
- (void)loadHTMLString:(NSString *)string baseURL:(nullableNSURL *)baseURL;
第一个参数是读取html文件得到的字符串,第二个参数是获取html文件中引用图片等资源的路径第三种:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
用的比较少,但是自由度最高。参数依次是:文件数据、文件类型、编码类型、资源路径(同第二种)。
3.协议方法[UIWebViewDelegate]
//准备加载时调用(通过返回值判断是否调用)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
//开始加载时调用
- (void)webViewDidStartLoad:(UIWebView *)webView;
//结束加载时调用
- (void)webViewDidFinishLoad:(UIWebView *)webView;
//加载失败时调用
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullableNSError *)error;
4.属性
@property (nullable,nonatomic,assign) id <UIWebViewDelegate> delegate;//代理
@property (nonatomic,readonly,strong) UIScrollView *scrollViewNS_AVAILABLE_IOS(5_0);//内置的scrollView
@property (nullable,nonatomic,readonly,strong) NSURLRequest *request;//URL请求
@property (nonatomic,readonly,getter=canGoBack)BOOL canGoBack;//能否返回上一级
@property (nonatomic,readonly,getter=canGoForward)BOOL canGoForward;//能否进入下一级
@property (nonatomic,readonly,getter=isLoading)BOOL loading;//是否正在加载
@property (nonatomic)BOOL scalesPageToFit;//是否适应屏幕大小
@property (nonatomic)UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);//转链接,比较重要
@property (nonatomic)BOOL allowsInlineMediaPlayback NS_AVAILABLE_IOS(4_0);//是否使用内联播放器播放视频
@property (nonatomic)BOOL mediaPlaybackRequiresUserActionNS_AVAILABLE_IOS(4_0);//是否自动播放
@property (nonatomic)BOOL mediaPlaybackAllowsAirPlayNS_AVAILABLE_IOS(5_0);//是否支持air play
@property (nonatomic)BOOL suppressesIncrementalRenderingNS_AVAILABLE_IOS(6_0);//是否加载数据后渲染界面
@property (nonatomic)BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0);//直接翻译
@property (nonatomic)UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);//网页翻页模式
@property (nonatomic)UIWebPaginationBreakingMode paginationBreakingModeNS_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 pageCountNS_AVAILABLE_IOS(7_0);//页数
//下面这两好像与分屏有关,有朋友了解的给我留个言,感激不尽
@property (nonatomic)BOOL allowsPictureInPictureMediaPlayback NS_AVAILABLE_IOS(9_0);
@property (nonatomic)BOOL allowsLinkPreview NS_AVAILABLE_IOS(9_0);
- iOS开发--UIWebView
- Swift开发IOS-UIWebView
- iOS开发- 动态获取UIWebView高度
- iOS开发之UIWebView
- iOS开发之UIWebView
- iOS开发之UIWebView
- iOS开发的UIWebView
- iOS开发之UIWebView
- iOS开发之UIWebView
- iOS开发-UIWebView
- iOS开发之UIWebView
- ios-开发-UIWebView
- iOS开发之UIWebView
- iOS开发之UIWebView
- iOS开发之UIWebView
- iOS开发UIWebView缓存
- iOS开发:UIWebView
- iOS开发之UIWebView
- Android自定义圆形和圆角图片
- 需求管理之项目经理与客户沟通的宜与忌
- python学习(1)启程
- [leetcode Q34&Q35] Search for a Range&Search Insert Position
- 支付宝接入文档中TRADE_SUCCESS和TRADE_FINISHED的本质区别
- iOS开发--UIWebView
- 项目经理之项目经理的基本特征
- C++调试时的错误例子及解决方法
- 103.Daikon Forge高级控件checkbox、dropdownlist、listbox、progressbar
- 1001. A+B Format
- javadoc: error - java.lang.reflect.InvocationTarget Exception java.lang.NullPointerException
- Android Activity学习 <二> Activity间通讯
- 移动智能终端可信环境分析
- CorData的基本使用