iOS开发-UIWebView加载本地和网络数据

UIWebView是内置的浏览器控件,可以用它来浏览网页、打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能。UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的。

基础布局

页面布局很简单就是一个文本框,一个按钮,一个UIWebView,页面布局如下:

如果想简单一点的话,其实用UIWebView也行,不过需要先准备一些文本数据,具体如下:

数据加载

①直接拼接Html,用UIWebView显示,viewDidLoad中添加代码:

    //直接加载Html字符串
    NSString *[email protected]"<html><head><title>Html加载</title></head><body>HtmlDemo-FlyElephant</body></html>";
    [self.webView loadHTMLString:htmlStr baseURL:nil];

 

②加载本地的Html网页,Book.html中代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>书籍</title>
</head>
<body>
少年维特之烦恼-歌德
</body>
</html>

viewDidLoad代码:

    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Book" ofType:@"html"];
    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    [self.webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:filePath]];

③加载本地的pdf文件,viewDidLoad代码:

    NSURL *url = [[NSBundle mainBundle]URLForResource:@"Book.pdf" withExtension:nil];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [self.webView loadRequest:request];

  

加载pdf的第二种方式:

    NSString *path = [[NSBundle mainBundle]pathForResource:@"Book.pdf" ofType:nil];

    //以二进制的形式加载数据
    NSData *data = [NSData dataWithContentsOfFile:path];

    [self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];

④加载本地txt文件,viewDidLoad代码如下:

 //加载txt
        NSURL *url = [[NSBundle mainBundle]URLForResource:@"Book.txt" withExtension:nil];
        //设置Url
        [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

  

⑤加载Word,viewDidLoad代码如下:

    //加载Word
    NSURL *url = [[NSBundle mainBundle]URLForResource:@"Book.docx" withExtension:nil];
    //设置加载Url
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

  

⑥加载网络数据,跳转按钮事件中实现如下:

    NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlText.text]];
    [self.webView loadRequest:request];

  

⑦设置委托,在不同的阶段处理数据,实现UIWebViewDelegate,设置自己本身为委托对象;

  [self.webView setDelegate:self];

常用的三个方法:

//加载开始
- (void)webViewDidStartLoad:(UIWebView *)webView{
    NSLog(@"加载开始的时候的方法调用");
}
//加载完成
-(void)webViewDidFinishLoad:(UIWebView *)webView{
    NSLog(@"加载完成的时候电脑方法调用");
}
//加载出错
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    NSLog(@"加载出错的时候的调用");
}

  

时间: 2024-10-10 16:05:05

iOS开发-UIWebView加载本地和网络数据的相关文章

iOS开发_UIWebView加载本地html

项目中遇到这样的问题:webview放在uiscrollview,webview加载本地html,之后需要计算webview高度. 步骤如下: 1.首先创建webview.几点注意,高度一定要小于你要加载的html的高度,最好设定个最小值,比如1:并且设置scalesPageToFit = YES使之自适应高度; self.bottomWebView = [[UIWebView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(self.middle

ios开发 uiwebview加载网页时阻止禁止取消图片下载

http://www.icab.de/blog/2009/08/18/url-filtering-with-uiwebview-on-the-iphone/ - (NSCachedURLResponse*)cachedResponseForRequest:(NSURLRequest*)request { NSURL *url = [request URL]; BOOL blockURL = [url.absoluteString hasSuffix:@"jpg"] || [url.ab

as3.0加载本地或网络上的图片

加载本地或网络上的图片,我们一般只用Loader及URLRequest这两个类就可以完成,URLRequest即可以加载本地的,也可以加载网络的.代码如下 import flash.display.Loader; import flash.net.URLRequest; var loader:Loader = new Loader(); var request:URLRequest = new URLRequest('img/123.png'); loader.y = 200; loader.l

使用UIWebView加载本地或远程服务器上的网页

大家都知道,使用UIWebView加载本地或远程服务器上的网页,sdk提供了三个加载接口: - (void)loadRequest:(NSURLRequest *)request; - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)

UIWebView加载本地HTML文件

写本文的原因是今天被要求「调研在iOS中加载本地HTML的相关技术」,好记性不如烂笔头,将一些东西给记录下来吧. 应用场景是这样的:手头的iOS App有一部分UI需要使用HTML完成,好处是这部分UI可以更灵活,即可以在任何不需要升级App的情况下更新这部分UI(包括样式.操作等等).当下非常火的技术 – Facebook的React Native – 正是用来解决这种问题的,毕竟在传统的开发模式下,更新UI必须要升级App,而升级App是一个非常耗时的过程.使用Web App部分代替Nati

uiwebview 加载本地js、css、img,html从网站加载

资源文件都是放在根目录下 1.index.html <html> <head> <title>My test Page</title> <link rel="stylesheet" href = "test.css" type="text/css"/> <script type = "text/javascript" src = "22.js"

UIWebView加载本地网页与图片的方法

  UIWebView加载工程本地网页与本地图片 - (void)viewDidLoad{    [super viewDidLoad];        NSString *filePath = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"html"];    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encodin

World Wind Java开发之八——加载本地缓存文件构建大范围三维场景

上一篇博客主要是针对小文件直接导入WW中显示,然而当文件特别大时,这种方式就不太可行.因此要将大文件切片,生成本地缓存,WW可以加载本地缓存文件,保障浏览场景时的流畅性. 1.使用Global Mapper生成WW缓存切片 使用Global Mapper生成WW缓存切片的步骤已上传至使用GlobalMapper生成WW缓存切片,这里不再赘述.生成后的切片可以放在任意文件夹下,目前参考了WWJ自带的例子InstallImageryAndElevationsDemo,暂时将数据放在C:\Progra

iOS开发之加载大量网络图片优化

1.概述 在IOS下通过URL读一张网络图片并不像其他编程语言那样可以直接把图片路径放到图片路径的位置就ok,而是需要我们通过一段类似流的方式去加载网络图片,接着才能把图片放入图片路径显示.比如: -(UIImage *) getImageFromURL:(NSString *)fileURL {   //NSLog(@"执行图片下载函数");       UIImage * result;       NSData * data = [NSData dataWithContentsO