如何将注册所有者的姓名插入电子邮件主题的字符串中?



我正在开发一个应用内电子邮件功能,现在我有[mailer setSubject:@"Someone has sent you a haiku."];行。 如何设置它,使"某人"被iPhone所有者的名字替换,主题是"John Doe给你发了一首俳句"?

正如这篇文章中所讨论的,您无法获取用户名,因为这是一个隐私问题。您可以在首次应用程序设置中询问用户其姓名,然后存储此信息。当然,您希望为用户提供一种稍后通过设置视图或类似视图更改它的方法。

但是,您可以找到正在运行的iPhone的名称,这些名称通常为"约翰的iPhone"。因此,您可能会发现发送诸如"约翰的iPhone向您发送了俳句"之类的消息是可以接受的。如果这对您有用,您可以获取iPhone的名称并将其插入字符串中,如下所示:

[mailer setSubject:[NSString stringWithFormat:@"%@ has sent you a haiku.", [[UIDevice currentDevice] name]]];

Apple的沙盒不允许您获取有关iPhone用户的电子邮件,联系信息等。您可能会找到一些方法来做到这一点,但如果您提交给商店,它们通常不会通过集合。

您可以获取手机名称: [[UIDevice currentDevice] name];

这至少是一个公共API,并且似乎取得了一些成功。

否则,您应该只询问用户他们要使用的名称。它更好 - 也许他们无论如何都想放一个昵称。

NSString *deviceName = [[UIDevice currentDevice] name]; // John's iPhone
NSRange r = [deviceName rangeOfString:@"'"]; // { 4; 1 }
NSString *user = [deviceName substringToIndex:r.location];
NSString *subject = [NSString stringWithFormat:@"%@ has sent you a haiku", user];
/* Assumes that the device name contains the user's name as the part before an aphostrophe.
 * If this isn't the case, you have to check for something else.
 */

相关内容

最新更新