Programme Diary -文档查看

ios 文档查看

项目中有文档查看的需求,txt、office文档、pdf(pdf另方法实现)等

实现类似离线查看的功能,文件从服务器下载至本地沙盒,路径self.localfilePath

1、用UIDocumentInteractionController实现,用法参考Library:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html

设置委托,运行可看到效果,由于要进行一些自定义的操作及界面分格,所以尝试用webView

2、用webView实现:转码+组装HTMLString

code:

基本能够浏览文件,但是问题又来了:

1、文档浏览时会出现乱码

2、稍大的文档加载很慢或者干脆无法显示

分析问题:

1、显示乱码肯定是解码格式不正确,有关ios的一些encoding类型可参考另一篇文章

解码过程中有两类得到字符串:

第一种直接解码就可以得到正确的NSstring,类似这样

// GBK解码
        NSStringEncoding enc = 0x80000632;
        textContent = [NSString stringWithContentsOfFile:self.localfilePath usedEncoding:&enc error:nil];


第二种无法直接得到正确的NSstring ,通过二次转码得到,比如这样

        // ISO 8859-1 + GBK解码
        NSStringEncoding enc = 0x80000632;
        NSStringEncoding isoEncoding= CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingISOLatin1);
        NSString *str = [NSString stringWithContentsOfFile:self.localfilePath encoding:isoEncoding error:nil];
        NSData *name = [str dataUsingEncoding:isoEncoding];
        textContent = [[NSString alloc]initWithData:name encoding:enc];

处理后得到了正确的显示内容

2、加载问题

问题处在转码的过程相当长,而且耗时

后来考虑webView会出现加载不成功直接返回的问题,对TXT类型的文档用textView+loading等待框框来完成。

加载时间还是需要优化。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qjloong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值