我需要发送包含来自应用程序的图像的 HTML 报告。报告被布置并且图像被嵌入到报告中。当我在网络视图中预览报告时,它看起来是正确的,当我通过 GMail 收到它时,样式和图像丢失了。
标题中嵌入了一个 CSS 样式表。
我正在发送这样的报告:
NSString* htmlReportString = [ReportManager createReportWithEvent:event];
[mailController addAttachmentData:[htmlReportString dataUsingEncoding:NSUTF8StringEncoding] mimeType:@"text/html" fileName:@"report.html"];
[mailController setMessageBody:htmlReportString isHTML:YES];
这是我从 .plist 中得到的并作为报告标题附加的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>template1</key>
<string>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Report</title>
<style type="text/css">
.statHead {
font-family: Arial, Helvetica, sans-serif;
font-size: 30px;
font-weight: bold;
color: #FFF;
}
.statSub {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #FFF;
}
.repHead {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #000;
}
.repSub {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #000;
}
.repLinks {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #000;
}
.repSubBullet {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #000;
list-style-type: circle;
}
.repSubBold {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
color: #000;
}
.topName {
font-family: Arial, Helvetica, sans-serif;
font-size: 34px;
font-weight: bold;
color: #000;
}
.topDate {
font-family: Arial, Helvetica, sans-serif;
font-size: 24px;
font-weight: bold;
color: #000;
}
.topSub {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #000;
}
</style>
</head>
<body></string>
</dict>
</plist>
当我在 iPhone 的网络视图中预览报告时,它看起来是正确的——所有样式都存在,图像也存在。但是当我在 GMail 中收到报告时,图像丢失并且没有任何样式显示。如果我保存报告并在我的 Mac 的预览应用程序上查看它,报告将再次正确显示。
是什么导致了这个问题?是编码/反斜杠问题还是 Gmail 对待 HTML 的方式与 Apple 的网络浏览器不同?