getCurrentPosition 在 iOS 6 上的 PhoneGap 1.3 中几乎总是失败

Posted

技术标签:

【中文标题】getCurrentPosition 在 iOS 6 上的 PhoneGap 1.3 中几乎总是失败【英文标题】:getCurrentPosition almost always failing in PhoneGap 1.3 on iOS 6 【发布时间】:2012-09-24 23:55:39 【问题描述】:

我有一个现有的 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!!!

仅此而已。

有什么想法可以去哪里吗?

【问题讨论】:

iOS6 的地理定位 getCurrentPosition 可能存在问题。你试过 Apache Cordova 吗?它可以帮助你让它工作。 (参见类似主题:***.com/questions/10412239/…) 有很多已知的错误。你绝对应该更新到cordova 2.1 【参考方案1】:

答案:将PhoneGap.plist中的EnableLocation设置为NO。显然,将其设置为 YES 会导致在 iOS 6 中运行的 PhoneGap 应用程序出现内存问题。已实施修复,但截至目前,我认为它不在 PhoneGap 官方版本中。 FWIW,我找不到真正知道 EnableLocation 做什么的人。

【讨论】:

以上是关于getCurrentPosition 在 iOS 6 上的 PhoneGap 1.3 中几乎总是失败的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap Build 6.3.0 geolocation getCurrentPosition 在IOS上慢

完美解决window.navigator.geolocation.getCurrentPosition,在IOS10系统中无法定位问题

IOS10 window.navigator.geolocation.getCurrentPosition 无法定位问题

Buildfire:buildfire.geo.getCurrentPosition 不适用于移动应用(android 和 ios)和 PWA

如何从 Ti.Geolocation.getCurrentPosition 访问/存储纬度和经度?

React Native Geolocation 在 IOS 上无法正常工作