MFMailComposeViewController根据收件人

时间:2015-07-22 14:37:56

标签: ios email delegates mfmailcomposeviewcontroller

我有一个按钮,允许用户向支持地址发送电子邮件。还可以选择使用电子邮件与其他用户共享内容。

在后一种情况下,跟踪用户通过电子邮件共享的事实进行统计分析。

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {

if (result == MFMailComposeResultSent){
    [[TrackingHelper sharedTracker] trackEvent:@"Product" action:@"SharedViaEmail" label:self.product.name];

}

[self dismissViewControllerAnimated:YES completion:NULL];

}

由于当用户通过电子邮件共享以及用户发送支持电子邮件时都会调用此选项,因此我想知道是否有办法区分代理中的两者? MFMailComposeResult没用,因为它只返回成功与否。我希望通过检索已发送邮件的收件人并将其与支持地址相匹配来做出决定,但据我所知,没有办法做到这一点。

有没有人知道是否有办法实现这一目标?

1 个答案:

答案 0 :(得分:0)

我通常这样做的方法是定义一个变量来跟踪哪个选项被激活。

选择“支持电子邮件”时,设置标记isSupportEmail = YES 否则NO

然后,在mailComposeController中,

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{
    if (result == MFMailComposeResultSent)
    {
        if(isSupportEmail)
            [[TrackingHelper sharedTracker] trackEvent:@"Support" action:@"SupportViaEmail" label:self.product.name];
        else
            [[TrackingHelper sharedTracker] trackEvent:@"Product" action:@"SharedViaEmail" label:self.product.name];
    }

    [self dismissViewControllerAnimated:YES completion:NULL];
}