我可以将MCOIMAPMessage存储在持久存储中,以便在设备没有互联网时使用。我能够显示电子邮件表格视图的列表。现在,当我打开任何电子邮件时,即使设备处于脱机状态,它也应该打开相关内容。但是,当iPhone没有互联网连接时,它没有显示电子邮件内容。
即使设备处于离线状态,我也会在此处正确设置所需的属性, Masterviewcontroller.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section)
{
case 0:
{
MCOIMAPMessage *msg = self.messages[indexPath.row];
//selectedMessage = self.messages[indexPath.row];
// Setting email flag as READ status
MCOIMAPOperation *op = [self.imapSession storeFlagsOperationWithFolder:folderList.selectedFolder
uids:[MCOIndexSet indexSetWithIndex:msg.uid]
kind:MCOIMAPStoreFlagsRequestKindAdd
flags:MCOMessageFlagSeen];
[op start:^(NSError *error) {
if (!error) {
NSLog(@"Updated flags");
} else {
NSLog(@"Error updating flags: %@", error);
}
}];
MCTMsgViewController *vc = [[MCTMsgViewController alloc] init];
//vc.folder = @"INBOX";
vc.folder = folderList.selectedFolder;
vc.message = msg;
vc.session = self.imapSession;
[self.navigationController pushViewController:vc animated:YES];
break;
}
在MCOMessageView.mm中,它一直在使用" htmlRenderingWithFolder"
- (void) _refresh
{
NSString * content;
if (_message == nil) {
content = nil;
}
else {
if ([_message isKindOfClass:[MCOIMAPMessage class]]) {
content = [(MCOIMAPMessage *) _message htmlRenderingWithFolder:_folder delegate:self];
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
appDelegate.mailBodyMessage = content;
}
else if ([_message isKindOfClass:[MCOMessageBuilder class]]) {
content = [(MCOMessageBuilder *) _message htmlRenderingWithDelegate:self];
}
else if ([_message isKindOfClass:[MCOMessageParser class]]) {
content = [(MCOMessageParser *) _message htmlRenderingWithDelegate:self];
}
else {
content = nil;
MCAssert(0);
}
}
if (content == nil) {
[_webView loadHTMLString:@"" baseURL:nil];
return;
}
NSMutableString * html = [NSMutableString string];
[html appendFormat:@"<html><head><script>%@</script><style>%@</style></head>"
@"<body>%@</body><iframe src='x-mailcore-msgviewloaded:' style='width: 0px; height: 0px; border: none;'>"
@"</iframe></html>", mainJavascript, mainStyle, content];
[_webView loadHTMLString:html baseURL:nil];
}
但是,当打开来自Masterviewcontroller.m的电子邮件时,任何电子邮件的内容都显示为空白。
即使设备处于离线模式,请在此处正确显示我要做的事情,以显示电子邮件内容。