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是没有用的,因为它只返回是否成功。我希望通过检索发送邮件的收件人并将其与支持地址进行匹配来确定,但据我所知,没有办法做到这一点。

有人知道是否有一种方法来实现这一点吗?

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

当选择"support email"时,设置标志位isSupportEmail = YESelse 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];
}

最新更新