使用 iPhone 默认电子邮件和姓名帮助用户注册

Posted

技术标签:

【中文标题】使用 iPhone 默认电子邮件和姓名帮助用户注册【英文标题】:Help user registration by using iPhone default email and name 【发布时间】:2011-03-24 02:42:59 【问题描述】:

我正在为我的 iPhone 应用程序创建一个注册,并希望添加猜测手机默认名称和电子邮件的功能,以最大限度地减少用户的输入量。可以使用哪些 API 来自动填充这些信息(UITextField,而不是 safari)?

【问题讨论】:

【参考方案1】:

我认为 API 无法让您访问这些信息。那将是一个巨大的隐私漏洞。

【讨论】:

既然应用程序是由苹果公司批准的,这怎么会是一个隐私漏洞?毕竟你确实可以访问他们的通讯录。 如果您安装了一个可以计算出您的姓名、电子邮件和电话的应用程序,那么它可以将它们提交给第三方。 “如果”是关键字。我已经找到了几种获取name 和phone 的方法。由于这些 API 已经存在,并且没有对这些数据的安全性造成严重问题,我认为 Apple 在保护这些 API 不通过审批流程方面做得很好。 有趣。我很惊讶你可以访问这些数据。我想知道这样做是否会让您在审核期间被标记?【参考方案2】:

我想我可能找到了一种使用 Apple 默认值和 UIDevice API 的可疑方式,这种方式可能会发现用户的全名。

由于许多用户可能不会更改默认设备名称,因此我们可以检查它是否与默认格式匹配并去掉人的全名。

NSString * tryToGuessFullName() 
    NSMutableArray * deviceNamePieces = [NSMutableArray arrayWithArray:[[UIDevice currentDevice].name componentsSeparatedByString:@"’"]];
    if( [deviceNamePieces count] >= 2 ) 
        NSString * possibleSuffix = [deviceNamePieces lastObject];
        if( [possibleSuffix isEqualToString:@"s iPhone"] || [possibleSuffix isEqualToString:@"s iPad"] || [possibleSuffix isEqualToString:@"s iPod"] ) 
            [deviceNamePieces removeLastObject];
            return [deviceNamePieces componentsJoinedByString:@"’"];
        
    
    return nil;

【讨论】:

这是一种狡猾的做法。 :) 至少可以作为一种尽力而为的方法。无论如何,我已经更改了我的设备名称,不愉快地在火车上向所有其他通勤者喊出我的真实姓名。【参考方案3】:

您可以要求用户从通讯录中选择一个联系人(可能是他们)来帮助完成此过程。这样做,您也可以获得地址信息。

【讨论】:

以上是关于使用 iPhone 默认电子邮件和姓名帮助用户注册的主要内容,如果未能解决你的问题,请参考以下文章

HTML 附件仅对使用 Outlook 应用程序(非默认邮件应用程序)的 iPhone 用户变为纯文本

无法登录正确的电子邮件和姓名

Backand:更新注册用户的电子邮件和姓名

如何在java中解码访问令牌并获取用户名和电子邮件?

如何使用 Flutter 打开 iPhone 上的默认电子邮件应用程序?

尝试将用户电子邮件和姓名保存到 Firebase 数据库时出现异常