UIWebView加载的3种方式(建一个类似Safari的浏览器)

简介: UIWebView加载的3种方式(建一个类似Safari的浏览器)

image.png


一、UIWebView简介



1、是iOS内置的浏览器控件,可以浏览网页、打开文档等

2、能够加载html、pdf、docx、text等格式的文件

3、系统自带的Safari浏览器就是通过UIWebView实现的


二、UIWebView加载内容的三种方式(再强调一下从服务器获取一些东西必须进行配置)



1、loadRequest

可以加载本地或服务器中的资源、网页

重点强调:(具体的代码展示)(自己创建一个@property(nonatomic,strong)UIWebView *webView;设置浏览器范围)


中文转化为英文方法:(前面定义了一个字符串:)

NSString *string = @"http://www.baidu.com.你好";

string = [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

重点:

/*如果将一个网络连接的字符串转化成url对象

*如果本地的话NSURL采用   NSURL *url = [NSURL fileURLWithPath:string];

*

*如果将一个本地的路径转化为url对象

*如果是网络采用  NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

( 1) 加载一个网络连接

NSString *string = @"http://www.baidu.com";//如果是中文需要转换成英文
   NSURL *url = [NSURL URLWithString:string];
   NSURLRequest *request = [NSURLRequest requestWithURL:url];
   [self.webView loadRequest:request];

(2) 加载本地文件(文档)

NSString *string = [[NSBundle mainBundle]pathForResource:@"picture" ofType:@"jpg"];//如果是中文不需要转换,只有在网络上获取才进行转换成英文
  NSURL *url = [NSURL fileURLWithPath:string];
  NSURLRequest *request = [NSURLRequest requestWithURL:url];
  [self.webView loadRequest:request];

2、loadHTMLString:baseURL

加载html代码 html学习网站 http://www.w3school.com.cn/html/index.asp
   参数:baseURL,相对地址可以在指定的baseURL中查找相关文件,一般赋值为nil

3、loadData:MIMEType:textEncodingName:baseURL

可以加载本地或服务器中的文件、网页
   参数MIMEType:文件类型,告诉浏览器使用什么样的插件来加载数据 文件类型对照表http://tool.oschina.net/commons

三、webView导航方法


1、goBack 回退

2、goForward 前进

3、reload 重载

4、stopLoading 取消载入内容

四、常用属性


1、自动对页面进行缩放以适应屏幕

scalespageToFit

2、设定电话号码、网址、电子邮件和日期等文字变为链接文字

dataDetectorTypes

五、代理方法


1、网页开始加载的时候调用
   - (void )webViewDidStartLoad:(UIWebView  *)webView
2、网页加载完成的时候调用
   - (void )webViewDidFinishLoad:(UIWebView  *)webView
3、网页加载错误的时候调用
   - (void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error

六.带领大家做一个简单的浏览器(我已经做好放到GitHub)



(利用到了UISearchBar,UIWebView,UIToolbar,UIActivityIndicatorView)

功能:可以搜索百度,本地,以及断网状态下的一些弹出效果

效果图如下


image.png


demo代码 密码: ar6p

目录
相关文章
|
3月前
|
JavaScript 前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
在使用 WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件)时,要获取网页加载后的标题,可以监听 WebView2 的 NavigationCompleted 事件。这个事件被触发时,表示导航已完成,此时执行JavaScript代码可以安全地获取网页的标题。
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
|
4月前
|
Web App开发 编解码 JavaScript
Safari浏览器不支持……
Safari浏览器不支持……
|
4月前
|
Web App开发 编解码 JavaScript
Safari浏览器不支持let声明的解决方式
Safari浏览器不支持let声明的解决方式
|
4月前
|
Web App开发 移动开发 Android开发
解决IOS Safari浏览器H5页面上下滑动时卡顿、页面缺失的问题
解决IOS Safari浏览器H5页面上下滑动时卡顿、页面缺失的问题
|
网络协议 前端开发 JavaScript
一个浏览器从加载URL到页面展示出来,经过了哪些步骤?
一个浏览器从加载URL到页面展示出来,经过了哪些步骤?
|
Web App开发 内存技术
selenium--加载浏览器配置
selenium--加载浏览器配置
|
Web App开发 JavaScript iOS开发
iOS Safari 浏览器 100vh 带有滚动条解决方案
iOS Safari 浏览器 100vh 带有滚动条解决方案
586 0
|
Web App开发 JavaScript Android开发
JS 解决移动端浏览器(Safari、Alook...)无法禁止缩放问题
JS 解决移动端浏览器(Safari、Alook...)无法禁止缩放问题
407 0
|
JavaScript 前端开发 Go
|
Web App开发 前端开发 JavaScript
前端基本开发工具的浏览器之Safari
Safari是一款苹果公司开发的浏览器,它在Mac OS和iOS操作系统上广受欢迎。下面就让我们来看看Safari的特点和优势。
310 0

热门文章

最新文章