繁体   English   中英

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

[英]Ionic hybrid mobile app get device location

我们正在使用Ionic / Cordova和Angular 5开发一个移动应用程序。我们必须根据设备设置的语言环境以公制或英制显示距离。 在应用程序的那一点上,我们已经有了一个以米为单位的值,我们必须进行相应的转换。

我们不想再进行网络呼叫,因此必须从设备中提取语言环境。

我们的技术堆栈是否有内置方法可以执行此操作,还是有用于提取设备设置的插件?

我们用:

  • 离子3
  • 角度5
  • 打字稿2.4
  • 科尔多瓦Android 6.3
  • 科尔多瓦-ios 4.5.4

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

我们找到了一种无需移动电话即可在移动设备上运行的解决方案。 第一行从设备设置中读取语言环境,第二行提取语言环境的国家/地区。

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

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

使用新的navigator对象(您正在创建一个混合应用程序,我认为您的浏览器版本是最新的)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM