我有一个现有的PhoneGap 1.3应用程序,该应用程序执行的某些地理位置在iOS 4和5中都可以正常工作。在iOS 6中,getCurrentPosition几乎总是触发故障回调。失败后,其他getCurrentPosition调用不会触发成功或失败回调。我已将应用程序简化为以下代码,其行为与我的完整应用程序相同。
document.addEventListener("deviceready", function() {
console.log('deviceready!!!');
successCallback = function() {
console.log('success!!!');
};
failureCallback = function() {
console.log('failure!!!');
navigator.geolocation.getCurrentPosition(function() { console.log('success 2'); }, function() { console.log('failure 2'); });
};
navigator.geolocation.getCurrentPosition(successCallback, failureCallback);
}, false);
当它失败时,这就是我在日志中得到的:
2012-09-24 16:26:46.576 MyAppName[7250:16703] [INFO] deviceready!!!
2012-09-24 16:26:56.582 MyAppName[7250:16703] [INFO] failure!!!
而已。
有什么想法去哪里?
最佳答案
答案:将PhoneGap.plist中的EnableLocation设置为NO。显然,将其设置为YES会导致在iOS 6中运行的PhoneGap应用出现内存问题。已经实现了修复,但是到目前为止,我认为它不在官方的PhoneGap版本中。 FWIW,我找不到真正知道EnableLocation起作用的人。