我使用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安装和构建过程中是否有一些缺失的步骤?
由于
答案 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/