我在iOS上使用PhoneGap 2.2.0并绑定到devicready事件以查看是否存在navigator.globalization对象。我未定义。
我的代码如下所示:
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady()
{
alert('deviceready');
navigator.globalization.getLocaleName(function(d)
{
window.localStorage.setItem('localeLanguage', d.value);
console.log('localeLanguage: is'+d.value);
},
function(error)
{
console.log('error getting locale language');
});
}
alert('deviceready')
永远不会开火。我真的很茫然。我按如下方式设置脚本。
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/jquery.mobile-1.2.0.min.js"></script>
<script type="text/javascript" src="cordova-2.2.0.js"></script>
<script type="text/javascript">
//alert(typeof navigator.globalization);
</script>
<script src="js/jquery.ui.map.full.min.js"></script>
<script src="js/jquery.ui.map.services.min.js"></script>
<script src="js/jquery.i18n.min.js"></script>
<script src="js/languages.js"></script>
<script src="js/oakglobalization.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
app.initialize();
</script>
<script type="text/javascript" src="js/custom.js"></script>
任何想法都会有所帮助,因为这是一个showstopper。
答案 0 :(得分:0)
尝试:
$(document).ready(function() {
document.addEventListener("deviceready", onDeviceReady, false);
});
添加事件监听器。
也许可以尝试更新您的cordova版本。当前版本是2.6.0。
另一点:使用phonegap,使用Navigator.notification.alert方法而不是本机javascript警报。更多信息here。
希望这有帮助!再见!
答案 1 :(得分:0)
不确定你是否解决了,但至少对我来说(PG 3.3.0)使用navigator.globalization我必须安装cordova插件并相应地更改XML。
command-line> cordova plugin add org.apache.cordova.globalization
config.xml>
<feature name="Globalization">
<param name="ios-package" value="CDVGlobalization" />
</feature>
就此而言,它仅仅在真正的iOS xcode模拟器上才能在浏览器模拟器上工作(即:涟漪)...... 备份你的项目以防万一;)