Jan*_*yne 8 android cordova cordova-plugins ionic2 angular
我正在使用本机Ionic 2 Geolocation插件,它无法按预期工作.首先,我添加插件.
ionic plugin add cordova-plugin-geolocation
Run Code Online (Sandbox Code Playgroud)
然后我导入插件并发出调用以获取当前位置.
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) };
}
}
Run Code Online (Sandbox Code Playgroud)
我还检查了我的AndroidManifest.xml.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
我注意到总是超时超时.如果我把它保留为默认值(默认情况下超时设置为无穷大),那么大约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
);
Run Code Online (Sandbox Code Playgroud)
测试时Chrome,代码按预期工作; 唯一的区别是我得到一个弹出窗口,询问我是否要允许该页面访问我的位置.
我看到很多人在Ionic上也有同样的问题,但也就是版本1.我想在Ionic 2的背景下提出这个问题.
顺便说一下,我还更新了Cordova,版本显示为6.0.2.
npm update -g cordova
Run Code Online (Sandbox Code Playgroud)
版本信息
也许我找到了解决方案。问题出在我的 GPS 模块上。最终它不再在任何网站上找到我的位置。我重新加载了手机,现在一切正常。
因此,首先检查您是否可以在maps.google.com等网站上确定您的位置。如果它无法确定您的位置,则问题出在您的手机上。尝试重新加载或重新刷新它。
| 归档时间: |
|
| 查看次数: |
9399 次 |
| 最近记录: |