Ionic Native Geolocation无法在Android上运行

时间:2017-03-09 12:55:57

标签: geolocation ionic2 google-geolocation ionic-native

我使用Ionic Native Geolocation获得以下代码:

import { Geolocation } from 'ionic-native';

    this.platform.ready().then(() => {
        alert('loadMap about to getCurrentPosition');
          Geolocation.getCurrentPosition(options).then((position) => {
        alert('loadMap getCurrentPosition');
            let latLng: google.maps.LatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            bound.extend(latLng);
            this.load(bound);
          });
    });

当我在浏览器中将其作为ionic serve运行时,或者我在iOS SimulatorXcode)上构建并运行它时,它可以正常运行。但是,当我为Android构建它时,尝试运行它,第一个警报被触发,但不是第二个。

这仅表示AndroidGeolocation.getCurrentPosition...无效。

我确实有另一个页面可以通过this.map = new google.maps.Map(htmlElement, mapOptions);呈现地图,所以看起来问题在于获取当前位置。当我安装应用程序时,我确实收到了这条消息:

Allow AppName to access the device's location?
DENY    ALLOW

点击Allow

有没有人知道我做错了什么,或者Android安装和构建过程中是否有一些缺失的步骤?

由于

4 个答案:

答案 0 :(得分:4)

好的,所以我现在已经挣扎了一段时间了。有时它会起作用,有时却不起作用。尝试为其添加选项:

let options = {timeout: 10000, enableHighAccuracy: true, maximumAge: 3600};
Geolocation.getCurrentPosition(options).then((resp) => {

答案 1 :(得分:2)

以下步骤对我有用:

安装两个最新的ionic-cli插件:

sudo npm install -g ionic@latest
npm install --save-dev --save-exact @ionic/cli-plugin-cordova@latest
npm install --save-dev --save-exact @ionic/cli-plugin-ionic-angular@latest

然后安装geolocation插件:

npm install @ionic-native/geolocation --save
ionic cordova plugin add cordova-plugin-geolocation

然后删除'/ node_modules'文件夹并清除npm:

的缓存
rm -rf node_modules/
npm cache clean --force

最后重新安装软件包:

npm install

希望它会帮助某人:)

答案 2 :(得分:0)



let options = {timeout: 10000, enableHighAccuracy: true, maximumAge: 3600};




这似乎运行了地理位置,但无法捕获lat和lng返回{}

答案 3 :(得分:0)

尝试背景地理位置而不是地理位置它解决了我的问题 有关详细信息,请阅读该文档 https://ionicframework.com/docs/native/background-geolocation/