无法在 Ionic 框架上使用人行横道获取地理位置(未发现错误)
Posted
技术标签:
【中文标题】无法在 Ionic 框架上使用人行横道获取地理位置(未发现错误)【英文标题】:Cannot get Geolocation with Crosswalk on Ionic Framework (No errors found) 【发布时间】:2015-02-01 13:04:02 【问题描述】:在我将基于 Ionic 的应用程序与 Crosswalk 集成之前,获取地理位置信息运行良好。但是当我使用 Crosswalk 时,它加快了我的应用程序的速度并且运行良好,除了地理位置。我无法获得纬度/经度,但我的应用中没有警告错误。
我的代码是一样的。
var onSuccess = function(position)
localStorage.latitude = position.coords.latitude;
localStorage.longitude = position.coords.longitude;
;
function onError(error)
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
navigator.geolocation.getCurrentPosition(onSuccess, onError);
【问题讨论】:
【参考方案1】:crosswalk 开发团队似乎已注意到此功能,并进行了一系列修复,因此现在应该可以在大多数设备上使用。详情请见this thread。
您必须尝试/验证的最明显解决方案是您已在设备上启用定位服务!
设置 -> 位置 -> 启用位置(GPS/WIFI)
这对我来说绝对是这种情况,但是,如果您发现自己使用的是不受支持的设备(请参阅上面的帖子),那么您将有多种选择...
-
更新您的安卓版本。
切换到兼容设备。
等待人行横道支持它。
祝你好运。
【讨论】:
【参考方案2】:我也注意到了。由于某种原因,基于浏览器的 navigator.geolocation 对象无法在带有人行横道容器的科尔多瓦上工作。
您可以为 cordova 安装地理定位插件。
cordova plugin add cordova-plugin-geolocation
这解决了我的问题,不需要重写代码,因为它替换了同一个导航器对象。
【讨论】:
【参考方案3】:使用地理定位需要用户许可,因此您需要在人行横道上指定它manifest.json
,方法是添加如下内容:
"xwalk_permissions": [
"Contacts",
"Geolocation",
"Messaging",
"Vibration"
]
(阅读https://crosswalk-project.org/documentation/manifest/permissions.html)。
更新
我解决了:
"xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]
【讨论】:
以上是关于无法在 Ionic 框架上使用人行横道获取地理位置(未发现错误)的主要内容,如果未能解决你的问题,请参考以下文章
为啥我无法通过 ionic 框架在 Android 上接收推送通知