【问题标题】:Capacitor Device Plugin works on ionic serve, but not on my phone when testing with Android StudioCapacitor Device Plugin 适用于 ionic serve,但在使用 Android Studio 进行测试时不适用于我的手机
【发布时间】:2021-01-12 11:51:21
【问题描述】:

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

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

我正在使用带有反应的离子。

代码:

  /* --------------------- 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, pluginId: Device, methodName: getLanguageCode, methodData: {}

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

D/Capacitor: Registering plugin: Device

【问题讨论】:

  • 您能发布一些代码示例和您收到的错误消息吗?
  • @johnborges 我找到了解决问题的方法,但谢谢!

标签: android reactjs ionic-framework capacitor capacitor-plugin


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多