Iphone 如何确定一个电话号码(带国家/地区呼叫代码)是否等于另一个电话号码(不带国家/地区呼叫代码)

Iphone 如何确定一个电话号码(带国家/地区呼叫代码)是否等于另一个电话号码(不带国家/地区呼叫代码),iphone,viber,mobile-country-code,Iphone,Viber,Mobile Country Code,我正在为iPhone()开发一个类似“Viber”的应用程序 我需要在我的数据库中使用用户电话号码作为ID 当用户启动应用程序时,我需要确定哪些联系人使用相同的应用程序。 我可以通过ios API获取联系人电话号码 但在考虑国家/地区调用代码()时,这种情况是有问题的: “注册”时,用户A键入其电话号码,但不输入国家/地区呼叫代码。 用户A在用户B的联系人列表中,但没有国家/地区呼叫代码 例如,在法国: +33 x xx xx xx xx xx指的是与0x xx xx xx xx xx xx x

我正在为iPhone()开发一个类似“Viber”的应用程序

我需要在我的数据库中使用用户电话号码作为ID

当用户启动应用程序时,我需要确定哪些联系人使用相同的应用程序。 我可以通过ios API获取联系人电话号码

但在考虑国家/地区调用代码()时,这种情况是有问题的:

“注册”时,用户A键入其电话号码,但不输入国家/地区呼叫代码。 用户A在用户B的联系人列表中,但没有国家/地区呼叫代码

例如,在法国: +33 x xx xx xx xx xx指的是与0x xx xx xx xx xx xx xx相同的手机


有没有简单的方法可以解决这个问题?

从本地格式转换为E.164格式没有简单的方法。问题是,每个国家的本地移动格式都不同,因此您不能为所有国家制定一套规则。您必须了解当地移动运营商支持的格式

如果您必须支持多个国家/地区,那么您可以根据iphone返回的/来进行支持。我还没有找到在哪些国家支持哪些本地格式的列表。它也不能解决漫游电话号码为本地格式的问题

如果您必须与多个国家打交道,那么您将遇到澳大利亚等国家的问题,这些国家支持本地数字格式,如果没有进一步的信息,将其转换为E.164格式几乎是不可能的

看这个,基本上和你的问题是一样的

我建议所有用户使用E.164格式存储所有电话号码。如果必须支持转换,则只支持必须处理的国家/地区格式。确保调查国家/地区支持的所有格式

您可以尝试使用上面问题中的通用格式,但它不适用于所有数字格式

在我开发的PBX软件中,我们使用一个基于规则的引擎,客户可以为其环境进行配置,我们尝试为我们销售到的国家/地区预填充。

您有没有调查过