我有一个现有的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起作用的人。

10-05 20:31
查看更多