在android上显示.mht文件

时间:2012-07-19 07:40:36

标签: android webview mhtml

如何在android webview上显示.mht(MHTML)文件。我试图在默认的android浏览器上打开.mht文件,但是没有打开但是我可以在Opera移动浏览器上打开它。所以我尝试使用MHTUnpack java库。我没有成功。

这是a link

如果有人使用过这个MHTUnpack,请告诉我如何在android中使用它。如果还有其他图书馆,也请告诉我。

由于

2 个答案:

答案 0 :(得分:1)

发现此unknown google project似乎有效。

此实用程序解码mhtml文件并将其保存在给定路径(内部或外部)上。保存后,返回可以加载到webview中的html文件路径。

试试吧。

答案 1 :(得分:0)

在克服了Android 4.4中WebView.saveWebArchive()格式更改的沮丧之后,我尝试了他的回答中提到的“未知谷歌项目”Chitranshu Asthana,但提供的代码很慢(1 MB * .mht文件的约10秒)十几张照片)并没有正确处理附件。

MHT Unpack library 加上Java Mail for Android(不是Oracle提供的版本)对我来说非常合适。


编辑:修正了MHT Unpack库的链接。另外,这是用法示例:

// contentPath - path to input .mht file
public static String unpackMht(String contentPath) throws IOException {
        // dstPath - path where file will be unpacked
        String dstPath = openTempDir(null) + File.separator;
        String indexFileName = dstPath + new File(contentPath).getName();

        try {
            Collection<Attachment> attachments = MHTUnpack.unpack(new File(contentPath));

            for (Attachment attachment : attachments) {
                String filename = attachment.getFileName();
                String path = filename == null ? indexFileName : dstPath +  filename;
                File newFile = new File(path);
                if (newFile.exists()) {
                    newFile.delete();
                }
                attachment.saveFile(path);
            }

            return indexFileName;
        } catch (MessagingException e) {
            throw new IOException(e);
        }
    }