在我将基于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);
3 回答
这个功能似乎已经被人行横道开发团队注意到,并且有一些修复,所以现在应该在大多数设备上工作 . 有关详细信息,请参阅this thread .
The most obvious solution that you must try/verify is that you have enabled location service on your device!
设置 - >位置 - >启用位置(GPS / WIFI)
对我来说绝对是这种情况,但是,如果您发现自己处于不受支持的设备上(请参阅上面的主题),那么您将有几个选项......
更新您的Android版本 .
切换到兼容设备 .
等待人行横道支持它 .
祝你好运 .
使用地理定位需要用户权限,因此您需要在人行横道
manifest.json
上添加以下内容:(阅读https://crosswalk-project.org/documentation/manifest/permissions.html) .
更新
我解决了:
我注意到了同样的事情 . 由于某种原因,基于浏览器的 navigator.geolocation 对象无法使用cordova与人行横道容器 .
你可以为cordova安装geolocation插件 .
这解决了我的问题,因为它取代了相同的导航器对象,所以不需要重写代码 .