Ionic - 启用 GPS

Ionic - GPS enabled

我正在寻找一种简单的方法来了解 iOS/Android 设备上的 GPS 许可状态。

我举个例子来说明我的问题:

如果设备上的 GPS 关闭(因此无法获取 longitude/latitude 坐标),我将以这种方式显示标签。

<p *ngIf="!isGPSTurnedOn()">GPS is turned off, please go to settings and turn it on!<\p>

并且在ts文件中:

isGPSTurnedOn() { return .... }

也有可能是GPS开启了,但用户没有授予定位权限。像这样

<p *ngIf="!isGPSPermissionGranted()">Location permission is not granted. Please go to settings and grant it!<\p>

ts 文件中的相同故事。

我的最终目标是在授予两个权限的情况下尝试获取 GPS 位置:否则,用户将收到有关此问题的警告。

提前致谢!

您需要的是 Ionic Native - Diagnostic 插件。

https://ionicframework.com/docs/native/diagnostic/

使用此插件,您可以检查设备功能是否启用,包括 GPS。

一些有用的方法(来自插件文档):

isLocationEnabled() : Returns 如果位置的设备设置已打开,则为真。在 Android 上,如果打开定位模式,则此 return 为真。在 iOS 上,如果打开定位服务,则此 return 为真。

isLocationAuthorized() : 检查应用程序是否有权使用位置。 Android 注意事项:这是针对 Android 6 / API 23 及以上。在 Android 5 / API 22 及以下调用将始终 return GRANTED 状态,因为在安装时已授予权限。

getLocationAuthorizationStatus() : Returns 应用程序的位置授权状态。

requestLocationAuthorization(mode) : Returns 应用程序的位置授权状态。 Android 注意事项:这是针对 Android 6 / API 23 及以上。在 Android 5 / API 22 及以下调用将始终 return GRANTED 状态,因为在安装时已授予权限。