从零开始学iPhone开发(4)——使用WebView
转自
总结关于iPhone中UIWEBVIEW读取本地GBK编码格式html
关于webView读取本地GBK编码的html,尝试了两天,终于成功。
欢喜之余,把感想记下来。一般来说,不成都是人犯错,人犯错的原因一个是大意,一个是不知道。
初学者两者都有。不废话,开始写经历过程。
webview打开网页很容易,只有三个方法:
- (void)loadRequest:(NSURLRequest *)request;
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
数第一个最容易,只需要一个nsurl地址。什么都不需要你设置。一般万维网的网页都正常,但是我在打开自己的部分网络上的网页还是有乱码。这里没有其它设置,乱码问题除非把网页改成utf-8,不然就需要用到另外两个方法来加载。
我尝试的第三中方法成功的,
首先把数据写到nsdata中
NSData *data = [NSData dataWithContentsOfFile:m_strUrl];
然后设置baseUrl
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0] ; //根据自己的具体情况设置,我的html文件在document目录,链接也是在这个目录上开始
NSURL *baseUrl = [NSURL fileURLWithPath:documentsDir];
为什么需要设置baseUrl?
也就是data中有一些链接是图片,css都是外部文件,然后这些文件需要到一个目录上去找。baseUrl就是这个目录。
最后,使用loadData方法对文件进行加载,并且指定类型(mimetype)和编码类型(textEncodingName)
[self.m_myWebView loadData:data MIMEType:@"text/html" textEncodingName:@"GBK" baseURL:baseUrl];
效果如下图,

本地的gbk文件带图片都能够很好的读取出来。
从零开始学iPhone开发(4)——使用WebView的更多相关文章
- 从零开始学iPhone开发(1)——工具的使用
前提:已经具备了苹果电脑或者iMac,或者安装好了x86苹果而且已经联网. 苹果系统版本要求是:Max OS X Lion,或者 Mountain Lion 我们对iPhone进行使用的工具是XCod ...
- 从零开始学iPhone开发(5)——使用MapKit
(转)Leonbao:MapKit学习笔记 1.概述插入MapView,设置Delegate(一般为Controller),Annotations记录兴趣位置点(AnnotationView用来显示兴 ...
- 从零开始学iPhone开发(3)——视图及控制器的使用
上一节我们分别使用IB和代码建立了两个视图并且熟悉了一些控件.这一节我们需要了解视图和视图的切换. 在iOS编程中,框架提供了很多视图,比如UIView,UIImageView, UIWebView等 ...
- 从零开始学iPhone开发(2)——控件的使用
这一节我们开始学习iOS中简单控件的使用. 在iOS编程中,简单的控件有很多,其中主要的用的多的有: UILabel,UIButton,UISegmentedControl, UITextField, ...
- 从零开始学IOS开发
从今天开始开一个坑,由于业务变动,要开始学习IOS开发进行IOS app开发,其实鄙人本身就是一只菜鸟加大学狗,有过两年的C#,ASP.NET MVC,微信公众平台开发经验,一只在继续努力着,从大三下 ...
- 从零开始学ios开发(三):第一个有交互的app
感谢大家的关注,也给我一份动力,让我继续前进.有了自己的家庭有了孩子,过着上有老下有小的生活,能够挤出点时间学习真的很难,每天弄好孩子睡觉已经是晚上10点左右了,然后再弄自己的事情,一转眼很快就到12 ...
- 从零开始学 iOS 开发的15条建议
事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...
- 从零开始学ios开发(二):Hello World!来啦!
今天看了书的第二章,主要介绍了一下Xcode的使用方法和一些必要的说明,最后做了一个“Hello World!”的小程序,其实就是在屏幕上用一个Label显示“Hello World!”,一行代码都没 ...
- 从零开始学ios开发(二):Hello World!
今天看了书的第二章,主要介绍了一下Xcode的使用方法和一些必要的说明,最后做了一个“Hello World!”的小程序,其实就是在屏幕上用一个Label显示“Hello World!”,一行代码都没 ...
随机推荐
- Oracle的自动统计信息不收集直方图的信息
Oracle的自动统计信息不收集直方图的信息 在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10 ...
- Maven问题总结:Eclipse中项目右键菜单中点击Maven->Update Projects时JDK被重置
Eclipse中在项目右键菜单点击->Maven->Update Projects时,JDK总是切回 1.5 如果没有在Maven中配置过JDK版本,只是在Eclipse中项目的Prope ...
- 24 个你应该了解的 PHP 库
24 个你应该了解的 PHP 库 2015-09-08 分类:WEB开发.编程开发.首页精华暂无人评论 来源:伯乐在线 分享到:更多3 二十万年薪PHP工程师培养计划 成为被疯抢的And ...
- 蓝牙协议栈记录—BTStack
TSTack User Guid 翻译过来的 1.简介 2.BTStack 架构 BTStack在所实现的协议和服务之间采用很多状态机实现相互作用,特点: <1>单线程.BTStack只有 ...
- (lleetcode)Single Number
Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...
- Maintaining Your Signing Identities and Certificates 维护你的签名标识和证书
Code signing your app lets users trust that your app has been created by a source known to Apple and ...
- Ruby 类案例
#!/user/bin/ruby # -*-coding:UTF-8-*- class Customer @@no_of_customers=0 def initialize(id,name,addr ...
- fmt-重新格式化段落
fmt供用户切分段落,使文本行数不要超出我们看到的屏幕范围. 如果电脑没有fmt(不是posix),需要安装coreutils包. 常用选项有两个: -s 切割较长的行,但不会将短行结合成较长的行. ...
- VMware简介
VMware(中文名威睿”) 虚拟机软件,是全球桌面到数据中心虚拟化解决方案的领导厂商.VMware vSphere 是VMware 的一个虚拟化产品,它包括vCenter,ESX Server,ES ...
- linux下用户账户切换
1,)当前我已经登录一个用户hadoop,我怎么切换到root账户呢(应为一般用户经常会遇到无权限修改/etc/hosts./ect/hostname等文件的权限)? 使用命令sudo su root ...