我们正在尝试使用 GWT、phonegap 2.4、gwtphonegap 2.4 开发一个 phonegap 应用程序。现在我们正在针对 Android 4.2 对其进行测试。我们已经使用了地理定位的东西,它在浏览器和移动设备中就像一个魅力,但是当我们尝试使用全球化来获取系统的区域设置时,它就不起作用了。onPhneGapAvailable 事件永远不会触发,如果我们直接调用 getGlobalization,它会说它是未定义的。
我们从 onPhoneGapAvailable 事件中调用此方法:
private void detectLanguage() {
//if it is in a mobile take the language from the OS
if (phoneGap.isPhoneGapDevice()) {
Window.alert("detecting language");
phoneGap.getGlobalization().getLocaleName(new GlobalizationCallback<CLocale, GlobalizationError>() {
@Override
public void onSuccess(CLocale s) {
...
}
@Override
public void onFailure(GlobalizationError f) {
....
}
});
}
}
之后:phoneGap.initializePhoneGap();
我们的html:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<script type="text/javascript" language="javascript" src="js/cordova-2.4.0.js"></script>
<meta name="gwt:property" content="locale=en">
<script src="js/init.js"></script>
<script type="text/javascript" language="javascript" src="asdf.mobileclient/asdf.mobileclient.nocache.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", (function(){ PhoneGap.available = true;}), false);
</script>
</head>
<body>
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
</body>
</html>
并且应用程序(config.xml)中的配置设置了以下插件:
<plugin name="Globalization" value="org.apache.cordova.Globalization"/>
提前致谢。