编程语言
首页 > 编程语言> > JavaScript-禁用GPS后,Ionic 3地理位置无法正常工作

JavaScript-禁用GPS后,Ionic 3地理位置无法正常工作

作者:互联网

我安装了离子本机地理位置插件

"@ionic-native/geolocation": "^4.15.0"

我也尝试过“ 4.6.0”和“ 4.20.0”.当我在进入该页面之前启用GPS时,它工作得非常好.但是,当未启用GPS时,它不会要求我将其打开,在控制台上显示错误并携带未定义的坐标.

我在构造函数/ ionViewDidLoad中编写了getCurrentPosition的方法.因此,即使用户在该页面上启用它,该方法也不会调用,并且坐标仍然不确定.

以下是代码

this.geolocation
  .getCurrentPosition()
  .then(resp => {
    console.log(resp);
    this.longitude = resp.coords.longitude;
    this.latitude = resp.coords.latitude;
  })
  .catch(error => {
    console.log("Error getting location", error);
  });

我不知道我是否必须给予手动权限或什么?几个月前我做了同样的事情,一切都很好.我第一次面对这种问题.请帮助我摆脱困境.

解决方法:

您应该手动请求权限并请求用户启用位置信息.您可以使用诊断插件(@ ionic-native / diagnostic)进行此操作.您应该使用以下方法:

diagnostic.isLocationEnabled()
diagnostic.isLocationAvailable()
diagnostic.requestLocationAuthorization()

如果要在授予权限后更新位置,可以使用以下方法:

diagnostic.registerLocationStateChangeHandler()

您可以在此处传递一个回调,以检查是否已启用位置信息以及是否可用.

标签:ionic4,ionic-native,javascript,ionic2,ionic3
来源: https://codeday.me/bug/20191011/1889418.html