无法在 phonegap 中获取设备语言

Posted

技术标签:

【中文标题】无法在 phonegap 中获取设备语言【英文标题】:Can't get devices language in phonegap 【发布时间】:2015-07-22 11:53:49 【问题描述】:

我正在做this phonegap 文档中的确切示例。

<!DOCTYPE html>
<html>
<head>
<title>getPreferredLanguage Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">

function checkLanguage() 
  navigator.globalization.getPreferredLanguage(
    function (language) alert('language: ' + language.value + '\n');,
    function () alert('Error getting language\n');
  );
 
 </script>
 </head>
 <body>
 <button onclick="checkLanguage()">Click for language</button>
 </body>
 </html>

当我点击按钮时,我希望它返回我在手机上使用的语言。 如果我通过 PhoneGap 应用程序运行它,它会很好用,同时连接到我计算机上的本地服务器(phonegap 服务),但是在制作 .apk 并将其安装到我的手机上后它就无法工作了。我错过了什么?

编辑:这是 config.xml http://pastebin.com/t6fx3jRD

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld" version="1.0.0"
 xmlns="http://www.w3.org/ns/widgets"
 xmlns:gap="http://phonegap.com/ns/1.0">
<name>hi bi</name>
<description>
    sample stuff
</description>
<author email="support@phonegap.com" href="http://phonegap.com">
    PhoneGap Team
</author>
<content src="index.html" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<preference name="phonegap-version" value="3.3.0" />
<preference name="permissions" value="none" />
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="android-installLocation" value="auto" />
<icon src="icon.png" />
</widget>

【问题讨论】:

请在您的帖子中添加config.xml 【参考方案1】:

我没有看到任何明显的问题,但有五件事需要解决。

    您需要将您的 config.xml 发布到此论坛。如果您删除该 pastebin 文件,其他人将无法从中受益。 (如果我们可以让它工作的话。) 您使用的是通用文件,这不是一件坏事,只是大文件更难发现问题。 您没有使用&lt;preference name="phonegap-version" value="X.X.X" /&gt;,这不是必需的。但既然你不这样做,那么默认情况下你会得到最新版本(最前沿)的 phonegap。 (这可能会给您带来难以调试的前沿错误 - 无需寻求大量帮助。) 由于您使用的是最新版本的 Phonegap,而不是 3.3.0,因此您应该参考 leading edge - 它没有完整的示例。 既然你没有说你的目标平台是什么,那么也许你应该看看Bug List

最后,您可以考虑使用较早的版本,例如&lt;preference name="phonegap-version" value="3.3.0" /&gt;,然后再次尝试构建。哦,还有 RTFM。

祝你好运,杰西

【讨论】:

您好,谢谢。 1. 完成。 2. 完成。 3,4,5 完成。我在 config.xml 中添加了 ,但是我已经在我的计算机上安装了最新版本的 phonegap,我是否也应该降级安装?顺便说一句,现在它显示了语言。另外,我确实读过,现在仍然是调频。 无需降级。 Phonegap/Cordova 非常擅长修复错误,所以当您升级时,您会得到错误修复,即使在旧版本上 - 如果它没有被弃用。 FWIW:FM可能不清楚,并且有错误。最近是one I found at Apple。

以上是关于无法在 phonegap 中获取设备语言的主要内容,如果未能解决你的问题,请参考以下文章

获取 Phonegap 应用程序的设备语言

jQuery Mobile无法在PhoneGap Windows Phone 8中运行

PhoneGap 构建 - 位置 API 超时

无法使用PhoneGap在Windows Phone 7中调用Ajax方法

使用 Urban Airship & Phonegap,无法注册设备:“Device token is nil”

如何获取phonegap最新版本