地理定位 API 在某些 Android 设备上不起作用

Posted

技术标签:

【中文标题】地理定位 API 在某些 Android 设备上不起作用【英文标题】:Geolocation API not working on some Android-devices 【发布时间】:2013-09-22 12:55:47 【问题描述】:

这是我在 *** 上的第一篇文章。 我将描述我的问题:

它是关于 htmljavascript 的 Phonegap 构建应用程序。我有两个文件:

“index.html”参见http://pastebin.com/RCQruFkE上的源代码

“config.xml”参见http://pastebin.com/1xCvvHL1上的源代码

我们有两个 android 设备:

1) 三星 Galaxy Y(Android 操作系统 2.3.6)

2) 三星 Galaxy S2(Android 操作系统 4.1.2)

同样在我的模拟器 Android OS 4.3 上,它也不起作用。 你只会看到: “正在查找地理位置……”。 在我的三星 Galaxy Y (2.3.6) 上,您将成功看到地理位置(经纬度以及其他一些信息)。

我也尝试在其中使用带有cordova 3.0.0的“cordova.js”(JS)并且没有文件,没有意义。

有人有同样的问题吗?它已经在上周四晚上开始(然后它起作用了),周五早上它不再起作用了。同一个APK!

【问题讨论】:

【参考方案1】:

您也可以使用 http://ip-api.com/json 。它们提供纬度、经度、城市、国家/地区等

jQuery 示例:

$.getJSON("http://ip-api.com/json",function(data)
     var lat = data.lat;
);

他们的 json 输出:

"as":"AS10199 Tata Communications Ltd","city":"Pune","country":"India","countryCode":"IN","isp":"Tata Communications","lat":18.5333,"lon":73.8667,"org":"Tata Communications","query":"115.117.217.243","region":"MH","regionName":"Maharashtra","status":"success","timezone":"Asia/Kolkata","zip":"411001"

就这么简单。

【讨论】:

【参考方案2】:

尝试添加“enableHighAccuracy”和“超时”,我在一些应设置超时以允许地理定位服务工作的安卓设备中看到了这个问题。

var 选项 = 启用高精度:真, 超时:5000, ;

【讨论】:

【参考方案3】:

您已经引用了 cordova.js,但在使用 PhoneGap Build 时应该是 phonegap.js

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>

应该是

<script src="phonegap.js"></script>

编辑:

这是official PGB 样板的链接:

https://github.com/phonegap/phonegap-start/tree/master/www

查看 index.html 文件的内容。

【讨论】:

以上是关于地理定位 API 在某些 Android 设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

W3C 地理定位 API 在 Safari 5 上不起作用

为啥 android:colorBackground 在某些设备上不起作用?

地理定位 API 在 android 中以本地语言显示地址

使用 HTML 编码时,为啥视频在某些 Android 设备上加载,而在其他设备上不加载?

Android解析推送通知在某些设备上不起作用

WebView 在某些 Android 设备上不加载图像或 css