2012-09-24 20 views
4

我有一個現有的PhoneGap 1.3應用程序,它可以在iOS 4和iOS 5中正常工作。在iOS 6中,getCurrentPosition幾乎總是觸發失敗回調。失敗後,額外的getCurrentPosition調用不會觸發成功或失敗回調。我已將應用程序縮減爲以下代碼,該代碼表現出與完整應用程序相同的行爲。getCurrentPosition在iOS 6上幾乎總是失敗PhoneGap 1.3

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!!! 

罷了。

關於該怎麼辦的任何想法?

+0

iOS6可能與geolocalisation getCurrentPosition有關。你有沒有試過Apache Cordova?它可以幫助你實現它的工作。 (請參閱類似的線程:http://stackoverflow.com/questions/10412239/phonegap-getcurrentposition-and-watchposition) – Cedric

+0

有許多已知的錯誤。你肯定應該更新到cordova 2.1 –

回答

0

答案:將PhoneGap.plist中的EnableLocation設置爲NO。顯然,將它設置爲YES會導致iOS 6中運行的PhoneGap應用程序出現內存問題。修正已經實施,但現在,我認爲它不在官方的PhoneGap版本中。 FWIW,我找不到任何真正瞭解EnableLocation功能的人。