i have a string got it from database for example " 96170123456"
but the phone number in not always like above, it is international,
so how to put it in intl phone number
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,
)
i use intl_phone_number_input: ^0.7.0 2
so how to know the iso code programatically?? what do u suggest me?
CodePudding user response:
You can use getRegionInfoFromPhoneNumber
method to check that this phone number is a valid number or not.
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");
}
CodePudding user response:
I don't know what you really want cause the question is not yet clear to me but I think this should work
Use this in the initState:
final List<Locale> systemLocales=WidgetsBinding.instance!.window.locales;
String? isoCountryCode = systemLocales.first.countryCode;
or you can use this other one but in the Build context:
Locale myLocale = Localizations.localeOf(context);
print(myLocale.countryCode);
This will get the country code and you can add it like this:
PhoneNumber number = PhoneNumber(phoneNumber: phoneNbr, isoCode: '${myLocale.countryCode}');