iPhone编程——UIWebView的基本应用

本文详细介绍了在iPhone应用程序中使用UIWebView显示文本、图片、网页内容的方法,包括加载HTML字符串、数据、请求,以及处理各种文件类型的MIME类型。同时提到了UIWebView在处理网络数据时的内存管理和特定文件类型(如声音文件)的操作技巧。
摘要由CSDN通过智能技术生成

iPhone应用程序中UIWebView是一个用来显示网站页面内容的很好的控件,有关该控件的一些基本用法记录如下。 首先是文本类型的加载,比如html,txt等文本类型的操作使用方法 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 就行了。实现代码如下: NSBundle* bundle = [NSBundle mainBundle]; NSString* resPath = [bundle resourcePath]; NSString* filePath = [resPath stringByAppendingPathComponent:@"tt.html"]; [m_web loadHTMLString:[NSString stringWithContentsOfFile:filePath] baseURL:[NSURL fileURLWithPath:[bundle bundlePath]]]; 不过对于文字编码显示的问题这种用法会存在问题,比如在txt文件中的中文就会存在问题。因为网页无法对其进行解析。但是对html页面的加载则可以通过设置编码来解决。当然我们还有另外的加载方式。就是 - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL 方法。代码如下: NSBundle *bundle = [NSBundle mainBundle]; NSData *data = [NSData dataWithContentsOfFile:[bundle pathForResource:@"doc.txt" ofType:nil]]; [m_web loadData:data MIMEType:@"text/plain" textEncodingName:@"utf-8" baseURL:[NSURL fileURLWithPath:[bundle bundlePath]]]; 其中的参数MIMEType用于设置文件的类型对于文件的类型可参考如下:另外需要注意互联网数字分配机构对编码名(IANA)encodingName有utf-8和utf-16两种。 当然这种方式也可以用于加载图片资源声音文件等(其实对其他方式也可以处理,比如在html种进行处理,这里要所的是直接对该种类型文件的操作),但我们必须确保文件类型被支持。在具体操作中我们需要设定文件类型比如我们加载.png文件就可以用如下操作方式 NSBundle *bundle = [NSBundle mainBundle]; NSData *data = [NSData dataWithContentsOfFile:[bundle pathForResource:@"AppIcon20.png" ofType:nil]]; [m_web loadData:data MIMEType:@"image/png" textEncodingName:@"utf-8" baseURL:[NSURL fileURLWithPath:[bundle bundlePath]]]; 上面提到有些文件类型在上述两种方式下可能无法正常的处理,比如声音文件.mp3的操作。当然这种问题还是有办法解决的,我们可以借助另外一个操作方法 - (void)loadRequest:(NSURLRequest *)request 通过该方法我们就可以对声音文件进行播放了,这种操作也可以是针对文本文件的,但是同样存在编码处理问题需要自己考虑。操作方式如下: NSString *str = [[NSBundle mainBundle] pathForResource:@"aa.mp3" ofType:nil]; NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:str]]; [m_web loadRequest:req]; 最后就是显示网页,方式如下: NSString *str = [NSString stringWithFormat:@"http://www.baidu.com"]; NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:str]]; [m_web loadRequest:req]; 注意网站协议是不能省略的否则无法读取到网络数据。比如http://www.baidu.com改为www.baidu.com操作就是不能成功的。 对于UIWebView的操作如果在退出是我们通常需要注意内存问题的处理,比如,在对网络上的数据进行解析的话应当在退出时调用 - (void)stopLoading 来停止UIWebView数据的解析。特别是采用了代理或者线程操作这点是很重要的,否则可能导致解析的数据被发送到一个已经释放的对象。 对UIWebView的其他操作就不多做介绍了。 附:对于MIME类型参考如下(当然有些类型是不被支持的): 按照内容类型排列的 Mime 类型列表 类型/子类型 扩展名 application/envoy evy application/fractals fif application/futuresplash spl application/hta hta application/internet-property-stream acx application/mac-binhex40 hqx application/msword doc application/msword dot application/octet-stream * application/octet-stream bin application/octet-stream class application/octet-stream dms application/octet-stream exe application/octet-stream lha application/octet-stream lzh application/oda oda application/olescript axs application/pdf pdf application/pics-rules prf application/pkcs10 p10 application/pkix-crl crl application/postscript ai application/postscript eps application/postscript ps application/rtf rtf application/set-payment-initiation setpay application/set-registration-initiation setreg application/vnd.ms-excel xla application/vnd.ms-excel xlc application/vnd.ms-excel xlm application/vnd.ms-excel xls application/vnd.ms-excel xlt application/vnd.ms-excel xlw application/vnd.ms-outlook msg application/vnd.ms-pkicertstore sst application/vnd.ms-pkiseccat cat application/vnd.ms-pkistl stl application/vnd.ms-powerpoint pot application/vnd.ms-powerpoint pps application/vnd.ms-powerpoint ppt application/vnd.ms-project mpp application/vnd.ms-works wcm application/vnd.ms-works wdb application/vnd.ms-works wks application/vnd.ms-works wps application/winhlp hlp application/x-bcpio bcpio application/x-cdf cdf application/x-compress z application/x-compressed tgz application/x-cpio cpio application/x-csh csh application/x-director dcr application/x-director dir application/x-director dxr application/x-dvi dvi application/x-gtar gtar application/x-gzip gz application/x-hdf hdf application/x-internet-signup ins application/x-internet-signup isp application/x-iphone iii application/x-javascript js application/x-latex latex application/x-msaccess mdb application/x-mscardfile crd application/x-msclip clp application/x-msdownload dll application/x-msmediaview m13 application/x-msmediaview m14 application/x-msmediaview mvb application/x-msmetafile wmf application/x-msmoney mny application/x-mspublisher pub application/x-msschedule scd application/x-msterminal trm application/x-mswrite wri application/x-netcdf cdf application/x-netcdf nc application/x-perfmon pma application/x-perfmon pmc application/x-perfmon pml application/x-perfmon pmr application/x-perfmon pmw application/x-pkcs12 p12 application/x-pkcs12 pfx application/x-pkcs7-certificates p7b application/x-pkcs7-certificates spc application/x-pkcs7-certreqresp p7r application/x-pkcs7-mime p7c application/x-pkcs7-mime p7m application/x-pkcs7-signature p7s application/x-sh sh application/x-shar shar application/x-shockwave-flash swf application/x-stuffit sit application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-tar tar application/x-tcl tcl application/x-tex tex application/x-texinfo texi application/x-texinfo texinfo application/x-troff roff application/x-troff t application/x-troff tr application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-wais-source src application/x-x509-ca-cert cer application/x-x509-ca-cert crt application/x-x509-ca-cert der application/ynd.ms-pkipko pko application/zip zip audio/basic au audio/basic snd audio/mid mid audio/mid rmi audio/mpeg mp3 audio/x-aiff aif audio/x-aiff aifc audio/x-aiff aiff audio/x-mpegurl m3u audio/x-pn-realaudio ra audio/x-pn-realaudio ram audio/x-wav wav image/bmp bmp image/cis-cod cod image/gif gif image/ief ief image/jpeg jpe image/jpeg jpeg image/jpeg jpg image/pipeg jfif image/svg+xml svg image/tiff tif image/tiff tiff image/x-cmu-raster ras image/x-cmx cmx image/x-icon ico image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd message/rfc822 mht message/rfc822 mhtml message/rfc822 nws text/css css text/h323 323 text/html htm text/html html text/html stm text/iuls uls text/plain bas text/plain c text/plain h text/plain txt text/richtext rtx text/scriptlet sct text/tab-separated-values tsv text/webviewhtml htt text/x-component htc text/x-setext etx text/x-vcard vcf video/mpeg mp2 video/mpeg mpa video/mpeg mpe video/mpeg mpeg video/mpeg mpg video/mpeg mpv2 video/quicktime mov video/quicktime qt video/x-la-asf lsf video/x-la-asf lsx video/x-ms-asf asf video/x-ms-asf asr video/x-ms-asf asx video/x-msvideo avi video/x-sgi-movie movie x-world/x-vrml flr x-world/x-vrml vrml x-world/x-vrml wrl x-world/x-vrml wrz x-world/x-vrml xaf x-world/x-vrml xof ==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值