如何从手机通讯录中找到注册用户

时间:2018-05-07 11:41:44

标签: android ios react-native architecture contacts

我正在编写一个简单的应用程序(在React Native中,但不应该有所作为)用户可以注册,然后查看已注册的手机联系人列表。它基本上连接了彼此保存在手机中的用户,类似于Whatsapp。

我的问题是,我该怎么做?

我看到两个选项:

  1. 在寻找"朋友"时,将所有用户的联系人发送到服务器,并将其与数据库中的注册用户列表进行比较(其中没有?我觉得非常正确,我的意思是在没有这些联系人的情况下挖掘所有用户和联系人吗?),或者

  2. 将所有用户从数据库下载到手机并在那里进行比较(这显然是不可能的)

  3. 我有没有想到的 第三 方式?

    [编辑]:谢谢你抽出时间回答,但到目前为止它并没有那么有用。我的意思是,显然我要加密这些东西:D

    我想知道是否有第三种方法来构建这个我没有想过的方法。谢谢!

3 个答案:

答案 0 :(得分:1)

首先,在这两种情况下(1& 2),您都必须要求您的用户获得访问联系簿的权限。

作为与第一个结合使用的第三个选项,如果您的用户的隐私问题(可能应该),您可以在电话号码上使用MD5或SHA1(任何哈希算法,您将其命名)algos并使用而不是真正的电话号码。它们对于每个唯一的电话号码都是唯一的,并且无法解码回电话号码本身。

The first thing I googled.(Swift示例)但是您必须在文件中包含一个CommonCrypto。

我确信如果需要的话,你也可以找到这种反应原生的算法。

答案 1 :(得分:1)

除了前一个答案之外,最好使用SHA-256(在Java中,您可以使用MessageDigest.getInstance("SHA-256").digest()包中的java.security来散列来自地址簿中的已清理电话号码(如果在React Native中可用) 。

答案 2 :(得分:0)

我已经使用“ react-native-contacts”完成了类似的操作,您可以在此处找到更多相关信息:https://github.com/rt2zz/react-native-contacts

一旦您集成了react-native-contacts,您将能够读取存储在用户设备上的所有联系人,然后可以尝试将其发布到您的后端。匹配特定用户联系人的功能。

如T. Pasichnyk和Norbert所述,您应该采取必要的步骤来保护用户数据