我正在使用此代码段将消息内容转换为可读文本,但它以 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 是否有差异?联系我们。
最佳答案
要保持 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) {
}
});
这将处理文本样式、图像等...
关于android - 如何在android中阅读消息内容时显示从java.mail接收的css和html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507189/