3

アプリケーションから画像付きの HTML レポートを送信する必要があります。レポートがレイアウトされ、レポート内に画像が埋め込まれます。レポートを Web ビューでプレビューすると正しく表示されますが、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>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
&lt;title&gt;Report&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
.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;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;</string>
</dict>
</plist>

iPhone の Web ビューでレポートをプレビューすると、正しく表示されます。すべてのスタイルが表示され、画像が表示されます。しかし、GMail でレポートを受信すると、画像が見つからず、どのスタイルも表示されません。レポートを保存して Mac のプレビュー アプリで表示すると、レポートは再び正しく表示されます。

この問題の原因は何ですか? エンコーディング/バックスラッシュの問題ですか、それとも Gmail は Apple の Web ブラウザとは異なる方法で HTML を扱いますか?

4

2 に答える 2

2

HTMl コード&lt;などで HTML の特殊文字をエスケープしました。公式の HTML に相当するものに置き換える必要があります。そうしないと、HTML が機能しません。それが iOS ブラウザーで動作するというのは、私には少し奇妙に思えます。

もちろん、それはまた別の問題かもしれません...

于 2012-07-03T13:17:09.270 に答える
0

CSS を HTML ページとマージして、完全なデータの文字列を作成します。次に、次のコードを追加します。

MFMailComposeViewController *picker=[[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate=self;
    [picker setSubject:@"Your Title"];
    [picker setMessageBody:HTMLSTRING isHTML:YES];
    [self presentModalViewController:picker animated:YES];
    [picker release];

これをメール コンポーザで表示します。正しく表示されていますか?

于 2012-07-03T13:21:07.113 に答える