如何在没有 GPS 的情况下获取用户所在国家/地区

Sta*_*ody 4 react-native expo

在本机反应中,我试图在不使用用户 GPS 的情况下获取用户国家/地区,就像微信注册一样,它会在选择器(选择)字段中自动获取用户国家/地区。

Jig*_*gar 5

它可以通过两种方式完成

  1. 获取用户的 IP 地址,但它仅适用于互联网连接

  2. 最好的方法是通过使用获取设备本身的当地国家/地区 react-native-device-info

const deviceCountry = DeviceInfo.getDeviceCountry(); // "US", "IN"

参考:react-native-device-info#getdevicecountry

  • `getDeviceCountry()` 已弃用 (3认同)
  • 不再支持:https://github.com/react-native-community/react-native-device-info#readme (2认同)

Hil*_*hka 5

getDeviceCountry()从 react-native-device-info 中移除

使用react-native-localize

import * as RNLocalize from "react-native-localize";

RNLocalize.getCountry(); // -> 'UA'
Run Code Online (Sandbox Code Playgroud)


如果你想获得一个完整的国家名称,比如“美国”,那么你可以将以下 json 文件添加到你的项目中:https : //gist.github.com/ssskip/5a94bfcd2835bf1dea52

然后通过代码导入并获取完整的国家/地区名称:

const countries = require('./countries.json')
// Or in ES6:
// import countries from './countries.json'

countries[RNLocalize.getCountry()] // -> 'United States'
Run Code Online (Sandbox Code Playgroud)

  • RNLocalize.getCountry(); 基于用户语言,但不基于用户位置。 (6认同)
  • @米隆是对的。我在印度,并选择 en-US 作为默认语言。但它返回美国国家。 (2认同)