iOS-UIWebView

从iOS8出现 WKWebView ,相比UIWebView来说 占用内存少,速度快。

UIWebView

用于在App中嵌入网页内容,通常是html格式的网页,也支持pdf, word等文档。

控件简介

控件优点

  1. 可跨平台
      开发一次可以部署iOS、Android等平台。
  2. 发布更新快
      在服务器端发布,能够实时更新终端展示,便于快速升级以及紧急修复bug。
  3. 排版布局能力强
      强大的HTML+CSS让人膜拜

控件缺点

性能
  Web App运行在浏览器里,浏览器的开放能力难以支持HTML5与Native对抗。
数据通讯复杂
  UIWebView与App之间进行数据通讯只能通过javascript或者UIWebViewDelegate来进行,客户端想传参数给UIWebView修改网页或者从网页中获取数据都比较复杂。

使用场景

  1. 排版复杂的内容
  2. 需后台灵活控制的界面
  3. 原网页

使用方法:

- (void)loadRequest:(NSURLRequest *)request;
- (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

- (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;


- (void)reload;
- (void)stopLoading;
- (void)goBack;
- (void)goForward;

canGoBack
canGoForward
loading
scalesPageToFit
detectsPhoneNumbers

与js交互

js是不能执行oc代码的,但是可以变相的执行,js可以将要执行的操作封装到网络请求里面,然后oc拦截这个请求,获取url里面的字符串解析即可,这里用到代理协议的

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:

你可能感兴趣的:(iOS-UIWebView)