Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用GPS时,Ionic 3地理定位不工作_Javascript_Ionic2_Ionic3_Ionic Native_Ionic4 - Fatal编程技术网

Javascript 禁用GPS时,Ionic 3地理定位不工作

Javascript 禁用GPS时,Ionic 3地理定位不工作,javascript,ionic2,ionic3,ionic-native,ionic4,Javascript,Ionic2,Ionic3,Ionic Native,Ionic4,我已经安装了爱奥尼亚本地地理定位插件 "@ionic-native/geolocation": "^4.15.0" 我也试过“4.6.0”和“4.20.0”。当我在进入该页面之前启用GPS时,它工作得绝对正常。但当GPS未启用时,它不会要求我打开它,在控制台上给出错误,并携带未定义的坐标 我在constructor/ionViewDidLoad中编写了getCurrentPosition方法。因此,即使用户在该页面上启用它,该方法也不会调用,并且坐标保持未定义 下面是代码 this.geolo

我已经安装了爱奥尼亚本地地理定位插件

"@ionic-native/geolocation": "^4.15.0"
我也试过“4.6.0”和“4.20.0”。当我在进入该页面之前启用GPS时,它工作得绝对正常。但当GPS未启用时,它不会要求我打开它,在控制台上给出错误,并携带未定义的坐标

我在constructor/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()
诊断。isLocationAvailable()

diagnostic.requestLocationAuthorization()
从此处安装诊断插件:,然后检查是否使用Diagnostics.isLocationAvailable()启用了位置,如果未启用,则使用
Diagnostics.switchToLocationSettings()
从设备设置屏幕提示用户启用位置。我应该在哪里写入此代码?无论是在构造函数中还是在IonViewDiCenter中,还是在其他地方?这取决于您希望应用程序具有的功能。请记住生命周期事件()以获得所需的行为。实例化组件时调用构造函数,每次视图激活时调用IonViewDiCenter。这取决于应用程序获得位置的重要性。请注意,如果用户不允许应用程序获得该职位,您可能无法获得该职位。所以你应该考虑这个案子。每次进入时,我都会检查,如果没有授予权限,我会请求权限。@NicolásLonghi:先生,有一种情况下会工作:假设我现在跳转到GPS位置设置,我没有启用GPS,然后单击“移动后退”按钮,在这种情况下不会工作,如何再次检查,因为用户GPS已关闭。如何管理此情况,先生?当应用程序返回前台时,不要假设您有可用的位置。如上所述,您可以使用diagnostic.registerLocationStateChangeHandler()来侦听更改,或者您可以再次询问是否已授予权限。sir在一种情况下工作:假设我现在跳转到GPS位置设置,我不启用GPS,并单击“移动后退”按钮在这种情况下不工作,如何再次检查因为用户GPS已关闭如何管理此情况Sir在提示用户打开位置设置的模式中,添加另一个按钮以允许用户调用重新初始化地理位置的方法。但是为什么需要单击按钮进行重新初始化我已重新初始化,但没有单击任何按钮?