当我更改手机语言设置时,Platform.device.language返回了错误的语言

时间:2018-02-12 18:10:17

标签: android ios nativescript

如果我启动我的应用程序并且我的设备(在这种情况下为Android)设置为西班牙语,则拨打platform.device.language会按预期返回西班牙语的ISO代码。如果我最小化应用程序,将手机的语言更改为其他内容,然后继续使用我的应用程序,platform.device.language仍会返回西班牙语,即使我已将其更改为德语等其他内容。

如果我完全关闭应用程序然后重新打开它,我就能获得正确的语言。我在过去的NS版本中使用了相同的工作流程,之前没有遇到过这个问题。是否有更新的方法来获取我不知道的设备语言?

我使用以下版本:

Nativescript:3.4.1 tns-core-modules:3.4.0 tns-android:3.4.1 tns-ios:3.4.1

1 个答案:

答案 0 :(得分:1)

我对此问题的解决方案只涉及访问本机API。

  let lang;  
  if (platform.isAndroid) {
    lang = java.util.Locale.getDefault().getLanguage();
  }
  if (platform.isIOS) {
    lang = NSLocale.preferredLanguages.firstObject;
  } else {
    platform.device.language;
  }

显然,通过平台对象的Nativescript方法只会在应用程序启动后查询设备语言设置。