我正在社交网络上工作。我需要添加一个" find-friends"基于用户的功能'电话号码和他们的地址簿(如whatsapp和其他人)。
我正在开发的应用程序将在全球范围内提供,我想知道其他人如何处理掠夺性和国家/地区代码的问题。当然,我可以找到解决方法,但我确信这是与该功能相关的相对常见的挑战。问题是,有些人用国家代码保存数字,而有些人则没有。我的数据库中是否需要两个版本的电话号码?
我的想法是什么:
1)用户分别注册国家代码中的数字和类型以及其余的数字(两个文本字段)。然后数据库中有两个单独的列。一个包含国家代码的整数,另一个包含国家代码的数字。
2)然后另一个用户通过其地址簿查找朋友。在PHP中,检查每个数字以及以" 00"开头的数字。与国际数字栏中的数字进行比较。反之亦然,那些不是以" 00"与没有国家代码的数字进行比较。通过这种方式,用户可以找到他们的朋友,无论他们如何保存他们的号码。
我将不胜感激任何帮助,链接,建议或指示。我正在寻找最佳实践方法。
谢谢!
答案 0 :(得分:6)
您可以使用此库将本地国家/地区电话号码格式化为国际电话号码 libPhoneNumber。它使用电话格式和国家代码的大数据。
然后通过国际电话号码搜索朋友。
使用示例:
NSError* error = nil;
//Parse local phone number using country code from CTCarrier
NBPhoneNumber * phoneNumberObject = [[NBPhoneNumberUtil sharedInstance] parseWithPhoneCarrierRegion: phoneNumber
error: &error];
if(error)
{
//This will get if no CTCarrier info. Maybe iPod, iPhone or iPad without sim
error = nil;
//You may put there another way to get user country code, or use default(Russia in example)
phoneNumberObject = [[NBPhoneNumberUtil sharedInstance] parse: phoneNumber
defaultRegion: @"RU"
error: &error];
}
NSString* formattedInternationalPhoneNumber;
if(!error)
{
formattedInternationalPhoneNumber = [[NBPhoneNumberUtil sharedInstance] format: phoneNumberObject
numberFormat: NBEPhoneNumberFormatE164
error: &error];
}