5

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

这是一个链接

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

谢谢

4

2 回答 2

1

Found this unknown google project which appears to be working.

This utility decodes the mhtml file and save it on given path(internal or external). After saving it returns the html file path which could be loaded into webview.

Try it.

于 2012-07-27T19:14:43.993 回答
0

在克服了对WebView.saveWebArchive()Android 4.4 中格式更改的挫败感之后,我尝试了他在回答中提到的“未知的 google 项目”Chitranshu Asthana,但提供的代码很慢(1MB *.mht 文件大约需要 10 秒,包含十几张图片)并且没有正确处理附加的文件名。

MHT Unpack 库结合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);
        }
    }
于 2014-02-12T23:01:37.523 回答