簡體   English   中英

僅限Android 4.0設備上的Phonegap getCurrentPosition超時

[英]Phonegap getCurrentPosition timeout on Android 4.0 devices only

我開發了一款現已在Google Play商店上線的應用。 該應用程序使用getCurrentPosition方法獲取用戶的當前位置。

我已經在一些設備上進行了測試,代碼運行良好。 這些設備是Nexus 4,Nexus 5,三星Galaxy S3和S4。 完善。

我現在發現Android設備上的應用程序問題低於4.1(即4.0.4,這似乎是除了上面提到的最常用的版本)。

該應用程序不斷返回超時錯誤。 我知道位置服務已在設備上打開。

我修改了getCurrentPosition的選項,包括maximumAgetimeoutenableHighAccuracy 我嘗試了各種各樣的選擇; 從合理的超時/年齡,低超時/年齡到高超時/年齡。 我試過在所有排列中打開( true )和關閉( false )的enableHighAccuracy 正在考慮超時(例如,在達到超時之前沒有命中錯誤回調)。

StackOverflow上有一些類似的線程,但沒有一個符合我的問題。 我嘗試關閉設備,刪除並重新添加應用程序,並重新編譯了幾次。 同樣的問題。

正在測試的設備是HTC Sensation,但我也嘗試過HTC Wildfire,並且有類似的bug報告來自用戶外面 - 都是一樣的。

下面是示例代碼,但就像我說的,我已經嘗試了各種選項(超過超時,超過年齡的超時,兩種情況下的高精度開啟和關閉等)。

if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(pos) {
        console.log('Working...');
    }, function(error, msg) {
        console.log(error.code + ' - '+ error.message);
    },
    { maximumAge: 90000, timeout: 9000, enableHighAccuracy: false });

LogCat吐出: 3 - Position retrieval timed out. at file:///[...] 3 - Position retrieval timed out. at file:///[...]

更新 :更改為watchPosition無效,設備仍無法找到該位置。

這是設備的問題,而不是Android(可能)或Phonegap(當然)的問題。 基於位置的服務無法在默認的Android瀏覽器上運行,也無法使用本機瀏覽器(地圖應用程序可以正常工作)。

我通過關閉位置服務,重新啟動設備並重新啟動所有位置服務,強制重新接受條款/證書等來在設備上修復此問題。 定位服務隨后涌入生活,瀏覽器找到了我的位置,應用程序正常工作。

發現有幾個人在網上抱怨這個,我在不止一個運行相同Android版本的設備上體驗過它。

對我來說,geolocation插件由於某種原因沒有成功安裝。 運行cordova plugins list以確保cordova-plugin-geolocation存在。 如果沒有,運行cordova plugins add cordova-plugin-geolocation 有時刪除和重新添加插件或整個平台也會修復錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM