7

我使用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 Simulator( Xcode) 上运行它时,它可以工作。但是,当我为 构建它Android并尝试运行它时,第一个警报被触发,但不是第二个。

这意味着Android仅,Geolocation.getCurrentPosition...不起作用。

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

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

我点击它Allow

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

谢谢

4

4 回答 4

8

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

let options = {timeout: 10000, enableHighAccuracy: true, maximumAge: 3600};
Geolocation.getCurrentPosition(options).then((resp) => {
于 2017-04-25T10:25:21.487 回答
3

以下步骤对我有用:

安装两个最新的 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

然后安装地理定位插件:

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

希望它会帮助某人:)

于 2017-06-14T14:16:09.147 回答
0

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

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

于 2017-12-28T05:18:37.507 回答
-1

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

于 2018-05-10T16:52:51.233 回答