【发布时间】:2016-06-22 03:52:11
【问题描述】:
我使用的是原生 Ionic 2 Geolocation 插件,但它没有按预期工作。首先,我添加插件。
ionic plugin add cordova-plugin-geolocation
然后我导入插件并发出调用以获取当前位置。
import { Geolocation } from 'ionic-native';
import { Geoposition, GeolocationOptions } from 'ionic-native/dist/plugins/geolocation';
export class MyComponent {
protected getLocation():Promise<Geoposition> {
let options:GeolocationOptions = {
maximumAge: 0, timeout: 5000, enableHighAccuracy: false
};
return Geolocation.getCurrentPosition(options)
.catch(error => { console.error(error.message) };
}
}
我还检查了我的 AndroidManifest.xml。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
我注意到总是超过超时。如果我将其保留为默认值(默认情况下超时设置为无穷大),那么大约 20 分钟后,我确实得到了一个地理位置。当然,20 分钟并不理想。
我也尝试使用navigator,如下所示。但我得到了完全相同的结果。
navigator.geolocation.getCurrentPosition(
position => {
console.info('using navigator');
console.info(position.coords.latitude);
console.info(position.coords.longitude);
},
error => {
console.warn('using navigator');
console.warn(error.code);
console.warn(error.message);
},
options
);
在Chrome 上测试时,代码按预期工作;唯一的区别是我收到一个弹出窗口,询问我是否要允许该页面访问我的位置。
我看到很多人在使用 Ionic 的 SO 上也有同样的问题,但这是版本 1。我想在 Ionic 2 的背景下问这个问题。
顺便说一句,我也更新了 Cordova,版本显示为 6.0.2。
npm update -g cordova
版本信息
- 离子 2.0.0-beta.30
- 科尔多瓦 6.0.2
- Gulp CLI 1.2.1 和本地 3.9.1
【问题讨论】:
-
面临同样的问题。你找到解决办法了吗?
-
不,我还没有找到解决方案。前几天我看了 ionic 2,有一个新的地理定位插件,我要试试。我稍后会发布链接并尝试看看它是否有帮助。
标签: android cordova angular cordova-plugins ionic2