微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

电容器设备插件适用于离子服务,但在使用 Android Studio 测试时不适用于我的手机

如何解决电容器设备插件适用于离子服务,但在使用 Android Studio 测试时不适用于我的手机

我对 Capacitor 的设备插件有疑问。使用 Device.getLanguageCode() 时,当我使用 ionic serve 测试浏览器中的应用程序时,我得到了正确的语言代码。但是,当我使用 android studio 在自己的手机上测试应用程序时,没有检索到语言代码。我试图将语言代码打印到屏幕上,但没有任何结果。

我怀疑可能是因为该应用程序只是处于测试模式,但它仍然安装在手机上,所以它不应该能够获取设备信息吗?非常感谢帮助!

我正在使用 ionic 和 react。

代码

  /* --------------------- Setting Language --------------------- */
    const { Device } = Plugins;
    const languageCtx = useContext(LanguageContext);

    let fixedLangCode = 0; // 0 is default language code (English).
    Device.getLanguageCode().then((langCode) => {
      if (langCode.value.includes("NO")) {
        fixedLangCode = 1; //1 is norwegian language code.
      }
      languageCtx.updateLanguageCode(fixedLangCode);
    });
    /* ---------------------------------------------------------- */

错误信息: 似乎没有任何错误消息。启动应用程序时唯一提到的关于 getLanguageCode 的内容是:

V/Capacitor/Plugin: To native (Capacitor plugin): callbackId: 27212778,pluginId: Device,methodName: getLanguageCode
V/Capacitor: callback: 27212778,methodName: getLanguageCode,methodData: {}

在所有其他插件中都提到了设备插件,如下所示:

D/Capacitor: Registering plugin: Device

解决方法

我找到了问题和解决方案。结果没有问题,只是浏览器和手机上的 getLanguageCode.value 结果不同。

在浏览器中,getLanguageCode.value 返回“nb-NO”。

在移动应用程序中,getLanguageCode.value 返回“nb”。

由于我的程序旨在检测“NO”而不是“nb”,因此它似乎不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。