离子混合移动应用程序获取设备位置

时间:2017-12-15 13:17:18

标签: javascript angular cordova typescript ionic-framework

我们正在开发具有Ionic / Cordova和Angular 5的移动应用程序。我们必须在公制或英制系统中显示距离,具体取决于设备设置的区域设置。在应用程序的这一点上,我们已经有一个以米为单位的值,我们必须相应地进行转换。

我们不想再进行网络呼叫,因此必须从设备中提取区域设置。

我们的技术堆栈是否有内置方式来执行此操作,或者是否有用于提取设备设置的插件?

我们使用:

  • Ionic 3
  • Angular 5
  • Typescript 2.4
  • cordova-android 6.3
  • cordova-ios 4.5.4

我找到了这个https://angular.io/guide/i18n指南,我们更愿意使用LOCALE_ID,但这不是必须的。

3 个答案:

答案 0 :(得分:2)

我们找到了一种适用于移动设备的解决方案,无需再进行其他网络通话。第一行从设备设置中读取区域设置,第二行从区域设置中提取区域。

不幸的是,这在浏览器中不可靠,但对于我们仅限移动设备的用例来说已经足够了。

const locale = window.navigator.language;
const country = locale.split('-')[1];

答案 1 :(得分:1)

使用新的navigator对象(您正在创建一个混合应用,我假设您与浏览器的版本保持同步)

let lang = navigator.language || navigator.userLanguage; // Language
let showPosition = (position) => {
  position.coords.latitude;
  position.coords.longitude; 
}
navigator.geolocation.getCurrentPosition(showPosition); // Geoposition

答案 2 :(得分:1)

   if ("geolocation" in navigator) {
      navigator.geolocation.getCurrentPosition((position) => {
        //this.latitude = position.coords.latitude;
        //this.longitude = position.coords.longitude;
      });
    }