Вопрос по webview, mhtml, android – Показать файл .mht на андроид

5

Как отобразить файл .mht (MHTML) на веб-сайте Android. Я пытался открыть файл .mht в браузере Android по умолчанию, но он не открылся, но я могу открыть его в браузере Opera Mobile. Поэтому я попытался с помощью библиотеки MHTUnpack Java. Мне это не удалось.

Здесь & APOS; sссылка!

Пожалуйста, если кто-нибудь использовал этот MHTUnpack, позвольте мне, как я могу использовать это в Android. А также дайте мне знать, если есть какая-либо другая библиотека.

Спасибо

Ваш Ответ

2   ответа
0

После преодоления разочарования по поводуWebView.saveWebArchive() изменение формата в Android 4.4, я попробовал & quot; неизвестный проект Google & quot; Читраншу Астана упоминал в своем ответе, но код, представленный там, медленный (~ 10 с для файла размером 1 МБ * .mht с десятком изображений) и неправильно обрабатывает имена вложенных файлов.

MHT Распаковать библиотекув сочетании сJava Mail для 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);
        }
    }
@ deville, к сожалению, это не сработало для меня, как ожидалось.
@tiktak смотрите обновленный ответ
@UmeshKumar Нет, извините, не знаю.
Есть идеи прочитать mht файлы в приложении для iOS?
@deville, можете ли вы привести пример того, как именно вам помогла библиотека mht unpack?
1

Нашел этонеизвестный проект Google который, кажется, работает.

Эта утилита декодирует файл mhtml и сохраняет его по заданному пути (внутреннему или внешнему). После сохранения возвращается путь к файлу html, который можно загрузить в веб-просмотр.

Попытайся.

Этот ответ устарел.
Извините, но я не думаю, что понял, что вы пытаетесь сказать здесь. Упомянутый здесь проект выполняет все операции локально. Хотя качество этого проекта сомнительно, но так как это открытый исходный код, вы всегда можете пойти дальше и улучшить его.
Проект является нативным приложением Android, поэтому пользователь должен будет установить проект, открыть браузер, загрузить файл MHTML, запустить утилиту для файла MHTML, снова открыть браузер, а затем загрузить полученную страницу HTML.
Для этого потребуется отправить файл MHTML обратно на сервер с помощью запроса AJAX, а затем дождаться результата, который не является идеальным.

Похожие вопросы