0

奇妙な問題が発生しました。以下のコードは、IOS5 デバイス、すべてのシミュレーターでは正常に動作しますが、IOS6 デバイスでは失敗します。画像の代わりに空白のビューが表示されます。

要件 : メールに画像を追加する必要があります。

NSString *imageName = @"classroom_tile.png"; 
imagePath = [[NSBundle mainBundle]bundlePath];
imagePath = [imagePath stringByAppendingPathComponent:[NSString   stringWithFormat:@"%@",imageName]];
imagePath = [@"file:///" stringByAppendingString:imagePath];

NSString *formatedUrl = [NSString stringWithFormat:@"</br><table border =\"0\"><tr><td></td><th>%@</th></tr><tr><td><img src= \'%@\' width=200 height=150></td></tr></table>",sometext,imagePath];
[mailComposer setMessageBody:formatedUrl isHTML:YES];

提案してください。

よろしくお願いします、アニル

4

2 に答える 2

0

あなたがやろうとしていることは決してサポートされていません。画像を電子メールに入れる唯一の有効な方法は、画像を添付ファイルとして追加することです。それでも、メール メッセージ本文で画像の添付ファイルを参照することはできません。

シミュレーターで実際に電子メールを送信できないため、シミュレーターで機能することは、このようなものには関係ありません。これを iOS 5 デバイスで実行すると、アプリから送信された受信メールは実際に画像を表示しますか、それともアプリのメール コンポーザに正しく表示されるだけですか? このようなメールがアプリから送信され、ユーザーのコンピューターのメール クライアントで開かれた場合、その画像が表示された場合、私は非常に驚かれることでしょう。

編集: これは iOS 5 では実際に機能しましたが、iOS 6 では機能しなかったことがわかりました。私は非常に驚いています。私は自分の簡単なテストをしました。iOS 5.1 では、iOS デバイス上のローカル ファイルへの画像参照を含む電子メールを送信すると、実際には電子メールと共に送信され、コンピュータのクライアント電子メール プログラムに表示されます。アプリを iOS 6 で実行すると、アプリ内のメール コンポーザや受信メールに画像が表示されません。したがって、少なくともそれは一貫しています。

もう1つの小さな補足事項。この行:

imagePath = [imagePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",imageName]];

次のようにする必要があります。

imagePath = [imagePath stringByAppendingPathComponent:imageName];

stringWithFormat:実際に文字列形式を使用していない限り、使用しないでください。NSStringまた、余分なオブジェクトを作成する必要はありません。

また、リソース バンドル内のファイルへのパスを取得するためのより良い方法を次に示します。

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"classroom_tile" ofType:@"png"];

その 1 行は、投稿した最初の 3 行を置き換えます。

最後のメモ。HTML メール メッセージを使用する場合は、 タグ<html><body>タグを含めます。

于 2012-10-24T06:16:04.567 に答える
0
This is not possible with the current MessageUI API: the MSMessageComposeViewController doesn't accept attachments like the MFMailComposeViewController does.

The only way to do this currently is to use an external service that allows you to send mms via a REST call for example.

GSMA defines a REST specification for exactly this purpose:     http://www.gsmworld.com/oneapi/reference_documentation-version_1.html (multiple pdf's on this page)

Try to find a local service provider that implements this specification and you're good to go.

Just to add the direct wiki link to the OneAPI MMS spec:     http://gsma.securespsite.com/access/Access%20API%20Wiki/MMS%20RESTful%20API.aspx and a link to the PHP/Java sandbox https://github.com/OneAPI/GSMA-OneAPI where MMS can be tested locally . Cheers.
于 2012-12-12T05:56:06.797 に答える