zoukankan      html  css  js  c++  java
  • 从零开始学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文件带图片都能够很好的读取出来。

  • 相关阅读:
    怎样练习一万小时
    新闻的未来
    有些人无缘再见,却一生想念
    媒体该如何展示事实之美?
    传统媒体:广告都去哪儿了?
    一线从业者干货分享:不做“忧伤”的媒体人
    整理者与信息平台
    把媒体当手段还是当目的?
    媒体人转身,转身去哪里?
    腾讯新闻的海量服务
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/3237606.html
Copyright © 2011-2022 走看看