我们正在开发具有Ionic / Cordova和Angular 5的移动应用程序。我们必须在公制或英制系统中显示距离,具体取决于设备设置的区域设置。在应用程序的这一点上,我们已经有一个以米为单位的值,我们必须相应地进行转换。
我们不想再进行网络呼叫,因此必须从设备中提取区域设置。
我们的技术堆栈是否有内置方式来执行此操作,或者是否有用于提取设备设置的插件?
我们使用:
我找到了这个https://angular.io/guide/i18n指南,我们更愿意使用LOCALE_ID
,但这不是必须的。
答案 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;
});
}