如何在intl电话号码包上启动电话号码

  • 本文关键字:电话号码 启动 intl flutter
  • 更新时间 :
  • 英文 :


我有一个从数据库中获得的字符串,例如"96170123456";

但电话号码并不总是像上面那样,它是国际的,

那么如何将其放入intl电话号码

phoneNbr = "+96170123456";
PhoneNumber number = PhoneNumber(phoneNumber: phoneNbr, isoCode: 'LB');
InternationalPhoneNumberInput(
onInputChanged: (PhoneNumber number) {
print(number.phoneNumber);
},
onInputValidated: (bool value) {
print(value);
},
ignoreBlank: false,
initialValue: number,
)

我使用intl_phone_number_input: ^0.7.0+2

那么,如何用程序的方式了解iso代码呢??你给我什么建议?

您可以使用getRegionInfoFromPhoneNumber方法来检查此电话号码是否为有效号码。

try {
var phoneNumber = "+234 500 500 5005";
PhoneNumber number = await PhoneNumber.getRegionInfoFromPhoneNumber(phoneNumber);
InternationalPhoneNumberInput(
onInputChanged: (PhoneNumber number) {
print(number.phoneNumber);
},
onInputValidated: (bool value) {
print(value);
},
ignoreBlank: false,
initialValue: number,
);
} catch(e) {
log("This phone number is not a valid number");
}

我不知道你真正想要什么,因为我还不清楚这个问题,但我认为这应该可以

在initState:中使用此

final List<Locale> systemLocales=WidgetsBinding.instance!.window.locales;
String? isoCountryCode = systemLocales.first.countryCode;

或者你可以使用另一个,但在构建上下文中:

Locale myLocale = Localizations.localeOf(context);
print(myLocale.countryCode);

这将得到国家代码,你可以这样添加:

PhoneNumber number = PhoneNumber(phoneNumber: phoneNbr, isoCode: '${myLocale.countryCode}');

最新更新