在我将基于Ionic的基于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);
答案 0 :(得分:0)
此功能似乎已被人行横道开发团队注意到并且已经进行了一些修复,因此现在应该在大多数设备上工作。有关详细信息,请参阅this thread。
您必须尝试/验证的最明显的解决方案是您已在设备上启用了位置服务!
设置 - >位置 - >启用位置(GPS / WIFI)
对我来说绝对是这种情况,但是,如果您发现自己处于不受支持的设备上(请参阅上面的主题),那么您将有多种选择......
祝你好运。
答案 1 :(得分:0)
您可以为cordova安装geolocation插件。
cordova plugin add cordova-plugin-geolocation
这解决了我的问题,不需要重写代码,因为它取代了相同的导航器对象。
答案 2 :(得分:0)
使用地理定位需要用户权限,因此您需要在人行横道manifest.json
上添加以下内容:
"xwalk_permissions": [
"Contacts",
"Geolocation",
"Messaging",
"Vibration"
]
(阅读https://crosswalk-project.org/documentation/manifest/permissions.html)。
我解决了:
"xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]