Android平台无法调用geolocation插件
Posted
技术标签:
【中文标题】Android平台无法调用geolocation插件【英文标题】:Can not call geolocation plugin in Android platform 【发布时间】:2015-04-17 11:23:37 【问题描述】:我们使用Worklight 6.2 或MobileFirst Foundation 7.0 想使用navigator.geolocation.getCurrentPosition 来获取GPS 位置,但是没有任何响应也没有错误,有谁知道为什么?
它适用于旧版本。
【问题讨论】:
提供一个演示应用程序,如果这对您来说失败了,请记住您必须在 androidManifest.xml 中添加这些权限:android.permission.ACCESS_FINE_LOCATION" 和 android.permission.ACCESS_COARSE_LOCATION"。 Idan,它在 Q 的标题中 :) 对,我看到了然后忘了我看到了... 【参考方案1】:如果你没有成功也没有失败,并且由于你没有提供你的实现,我认为你没有正确实现它。
我在 MFPF 7.0 的 Android Emulator 中测试了以下内容,并且成功了:
common\main.js:
function wlCommonInit()
var options =
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
;
navigator.geolocation.getCurrentPosition(success, error, options);
function success(pos)
var crd = pos.coords;
alert('Your current position is:' + crd.latitude + " " + crd.longitude + " " + crd.accuracy);
function error(err)
alert('ERROR(' + err.code + '): ' + err.message);
当然也在AndroidManifest.xml中添加了以下两个权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
如果您还在模拟器中进行测试并获得超时,请增加超时值或在 Eclipse 的 DDMS 视图中强制更改位置:https://***.com/a/23152773/1530814
【讨论】:
嗨,伊丹,非常感谢。是的,我忘记将权限添加到配置文件。新的Cordova文档很差,丢失了重要的配置指导。 另一个 cmets,为什么我在 Android Project lib 目录的 cordova.jar 文件中找不到任何 geolocaiton 类?以上是关于Android平台无法调用geolocation插件的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap/Cordova Geolocation 不适用于 Android 4.0+,但适用于所有其他平台
无法使用 HTML5 Geolocation 和 Android 获取不同用户的位置
React-Native Geolocation 在 Android 上无法按预期工作
如果没有GPS,则无法使用navigator.geolocation进行反应原生的当前位置