如何使用用户当前位置获取国家代码(例如(+91,+1等)) flutter

Rah*_*lZx 2 locale mobile-application mobile-country-code dart flutter

我正在开发 flutter 应用程序,我有一个文本小部件,我想在其中根据用户的位置显示用户当前的国家/地区代码,而无需任何下拉菜单。我使用区域设置获得诸如“IN”、“US”之类的值,但我不想要它,我需要数字国家代码,如+91(印度)、+1(美国)等。请任何人帮助我。

You*_*men 7

您可以使用这些文件country.dartcountry.dart从http包中
获取用户国家/地区代码,然后使用它从以下位置获取国家/地区电话代码:http://ip-api.com/jsoncountryList

 Future<String> getCountryPhoneCode() async {
    var response = await http.get(Uri.parse('http://ip-api.com/json'));
    var jsonResponse = json.decode(response.body);
    final isoCode = jsonResponse['countryCode'];
    print("country code " + isoCode);
    return "+" +
        countryList
            .firstWhere((element) => element.isoCode == isoCode,
                orElse: () => countryList.first)
            .phoneCode;
  }

Run Code Online (Sandbox Code Playgroud)

我对此进行了测试,它对我有用,但您可以改进它以避免 http 异常