Как показать css и html тэги, получаемые из java.mail при чтении содержимого сообщения в android - PullRequest
0 голосов
/ 24 мая 2018

Я использую этот фрагмент для преобразования содержимого сообщения в читаемый текст, но он возвращает текст в виде CSS и HTML тегов, которые я использовал webview для отображения текста, но изображения и форматирование текста не существует, как я могу добиться этого.

 private String getText(Part p) throws MessagingException, IOException {
    if (p.isMimeType("text/*")) {
        String s = (String)p.getContent();
        textIsHtml = p.isMimeType("text/html");
        return s;
    }

    if (p.isMimeType("multipart/alternative")) {
        // prefer html text over plain text
        Multipart mp = (Multipart)p.getContent();
        String text = null;
        for (int i = 0; i < mp.getCount(); i++) {
            Part bp = mp.getBodyPart(i);
            if (bp.isMimeType("text/plain")) {
                if (text == null)
                    text = getText(bp);
                continue;
            } else if (bp.isMimeType("text/html")) {
                String s = getText(bp);
                if (s != null)
                    return s;
            } else {
                return getText(bp);
            }
        }
        return text;
    } else if (p.isMimeType("multipart/*")) {
        Multipart mp = (Multipart)p.getContent();
        for (int i = 0; i < mp.getCount(); i++) {
            String s = getText(mp.getBodyPart(i));
            if (s != null)
                return s;
        }

    }

    return null;
}

Вывод как-то так

TRANSACTIONS RECEIPT body { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; margin: 0; padding: 0; } table { border-collapse: collapse; } table, th, td { border: none; padding: 0; } /** Mobile Device **/ @media screen and (max-width:600px) { table[class='full-width'] { width:100% !important; } } /** Mobile Device End **/       

Общая сумма ₹ 96 Есть расхождения?Связаться с нами.

1 Ответ

0 голосов
/ 24 мая 2018

Чтобы сохранить форматирование для источника HTML, вы можете использовать:

Html.fromHtml("", Html.FROM_HTML_MODE_LEGACY, new Html.ImageGetter() {
        @Override
        public Drawable getDrawable(String source) {
            return null;
        }
    }, new Html.TagHandler() {
        @Override
        public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {

        }
    });

Это будет обрабатывать стиль текста, изображений и т. Д ...

...