KMM iOS电话号码格式化E164

wh6knrhe  于 2023-08-08  发布在  iOS
关注(0)|答案(1)|浏览(129)

我有一个KMM项目(并且正在Shared>iOSMain模块中工作),需要读取设备联系人,并将电话号码以E164格式发送回服务器(实际上,在发送回之前,号码已被散列,但在散列之前必须在E164中)。
我在Android端运行得很好,并且正在阅读iOS端的联系人,但我的问题是,我能从iOS获得的所有信息都是CNPhoneNumber.stringValue,这是一个格式化的电话号码,如(888) 555 5512,而不是E164(+18885555512)。
我找不到任何简单的方法将其转换为E164,因为stringValue中可能有也可能没有国家代码,并且没有办法告诉(并且这需要全局工作)。
当然,让电话号码从联系人到国际标准必须是直接向前-我错过了什么?

rggaifut

rggaifut1#

看看我的Kotlin多平台端口libphonenumber!https://github.com/luca992/libphonenumber-kotlin
除了切换到使用KotlinRegex和java libs之外,它基本上是一个直接的端口,大部分代码都是用java到kotlin转换器转换的。所以可能还有很多改进的空间,可能还有一些我没有发现的bug。但它在include compose多平台示例中工作!
然后,您可以执行类似this的操作来格式化为E164。

相关问题