MFMailComposeViewController падает на iOS5 при настройке тела HTML - PullRequest
0 голосов
/ 03 декабря 2011

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

2011-12-03 15:04:08.708 Kinopilot[58387:17503] *** Terminating app due to uncaught
  exception 'DOMException', reason: '*** INVALID_ACCESS_ERR: DOMException 15'
*** First throw call stack:
(0x2994052 0x210fd0a 0x2993f11 0x391affb 0x3886795 0x64a9b4 0x6487b6 
0x648b84 0x648bb4 0x648bb4 0x6424b9 0x69078b 0x658fad 0x658eeb 0x658e6f
0x656d37 0x656bb2 0x65737c 0x65759e 0x658273 0x658758 0x6588e6 0x2995ec9 
0x10965c2 0x12d1d54 0x2995ec9 0x10965c2 0x109655a 0x113bb76 0x113c03f 
0x113b2fe 0x10bba30 0x10bbc56 0x10a2384 0x1095aa9 0x2270fa9 0x29681c5 
0x28cd022 0x28cb90a 0x28cadb4 0x28caccb 0x226f879 0x226f93e 0x1093a9b 0x6680d 0x663d5)

Я вполне уверен, что MFMailComposeViewController подключен правильно, потому что все в порядке, когда я устанавливаю тело в виде простого текста. Кроме того, мой код отлично работает с HTML и обычным текстом на iOS 4.3.

Это соответствующий код:

@interface MailComposeDelegate: NSObject<MFMailComposeViewControllerDelegate>
@end

@implementation MailComposeDelegate

+(MailComposeDelegate*) sharedMailComposeDelegate
{
  static MailComposeDelegate* mcd = nil;
  if(!mcd) {
    mcd = [[MailComposeDelegate alloc]init];
  }

  return mcd;
}

-(void)mailComposeController:(MFMailComposeViewController*)controller 
          didFinishWithResult:(MFMailComposeResult)result 
                        error:(NSError*)error
{
  [app.window.rootViewController dismissModalViewControllerAnimated:NO];
}

...

@implementation M3AppDelegate(Email)

-(void)composeEmailWithSubject: (NSString*)subject
                       andBody: (NSString*)body
{
  // -- compose HTML message.

  MFMailComposeViewController* mc;
  if([MFMailComposeViewController canSendMail])
    mc = [[MFMailComposeViewController alloc] init];

  if(!mc) return;  

  mc.mailComposeDelegate = [MailComposeDelegate sharedMailComposeDelegate];

  [mc setSubject: subject];
  [mc setMessageBody: body isHTML: YES];

  // -- show message composer.

  [app.window.rootViewController presentModalViewController:mc animated:YES];
}

@end

1 Ответ

1 голос
/ 03 декабря 2011

Ха, отвечая на мой собственный вопрос: какой-то iOS5-компонент не будет обрабатывать часть моей разметки, а именно

<div style='font-size: 85%'>

дел. Тем не менее, изменение относительного размера в абсолютную высоту пикселей работало нормально.

...