Как получить регион региона с выставкой и android - PullRequest
1 голос
/ 06 августа 2020

Я использую Localization from expo, и он отлично работает с iOS. Но для android похоже, что вы не можете получить регион.

import * as Localization from "expo-localization";
  const locale = Localization.region;

В документах говорится следующее. Обратите внимание на доступность на iOS и в Интернете, что звучит так, как будто это не поддерживается на android, и мой console.log дает мне undefined на android.

Localization.region

Доступно на iOS и в Интернете. Код региона для вашего устройства, полученный из настройки региона в разделе "Язык и регион". Пример: США, Новая Зеландия.

Есть ли другой способ получить это с помощью expo?

1 Ответ

0 голосов
/ 06 августа 2020

Я столкнулся с той же проблемой.

1 - Лучшее, что я придумал, - это использование expo-location. Однако для этого требуется разрешение на местоположение.

import * as Location from 'expo-location';

Location.requestPermissionsAsync().then((permission) => {
  if (permission.status !== 'granted') {
    console.log('Permission to access location was denied');
  } else {
    Location.getCurrentPositionAsync().then((pos) => {
      Location.reverseGeocodeAsync({
        latitude: pos.coords.latitude,
        longitude: pos.coords.longitude,
      }).then((res) => {
        console.log(`Country => ${res[0].country}`);
        // e.g. Canada, United States
      });
    });
  }
});

2 - Другой вариант, если вы используете рабочий процесс Expo с открытым / извлеченным кодом, - это react-native-localize:

https://github.com/react-native-community/react-native-localize

3 - Надеюсь, Expo исправит это правильно в локализации экспо

...