是否有官方或库函数来验证 React Native 中状态和 GPS 权限的变化?

Posted

技术标签:

【中文标题】是否有官方或库函数来验证 React Native 中状态和 GPS 权限的变化?【英文标题】:Is there an official or library function to verify the changes in the states and GPS permissions in React Native? 【发布时间】:2019-05-10 04:47:02 【问题描述】:

为了保证我正在开发的应用程序的正确运行,有必要随时了解GPS的当前状态和权限。

查看原生 react 的官方文档,注意没有自然的方法可以使用官方库(Geolocation)来验证 GPS 状态的变化。因此,我决定寻找可以让我验证更改的第三方库,其中我发现:

    react-native-gps-state react-native-connectivity-status

这两个库在 android 上都有小问题,并且不报告传感器状态和权限的变化。

一些程序员使用函数navigator.geolocation.getCurrentPosition(...)作为获取状态变化的策略,使用类似于:

navigator.geolocation.getCurrentPosition(
  position => 
    //Processing the enabled status of the GPS
  ,
  error => 
  //Processing the disabled status of the GPS
,
   enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 
);

很明显,这个解决方案不是最佳的(在大多数情况下可能会显示为 TIME_OUT),除了需要实现额外的代码来随时检查状态。

【问题讨论】:

it is necessary to know the current status and permissions of the GPS at all times.。为什么不使用检查权限的库?例如react-native-permissions(如果使用 Expo,则为 Permissions 模块)Permissions.check('location').then(response => // Response is one of: 'authorized', 'denied', 'restricted', or 'undetermined' navigator.geolocation.getCurrentPosition(...) ) 关注***.com/questions/49273952/… 【参考方案1】:

React Native 有Geolocation 作为内置库,你可以使用watchPosition 函数来检查位置变化,它也有指定超时的选项。 你可以找到整个文档here

【讨论】:

有什么方法可以添加监听器来验证GPS是打开还是关闭?

以上是关于是否有官方或库函数来验证 React Native 中状态和 GPS 权限的变化?的主要内容,如果未能解决你的问题,请参考以下文章

验证/签署对我的 API 的请求来自我的应用程序并且没有被欺骗(React Native)

React-native 用ART绘制图形验证码

使用 React Native / Redux 和 Firebase 保持身份验证

需要一个测试框架来测试IOS Native + React本机App

在 react-native 组件中实现 async/await 功能

react native - 我是否应该用 react-native start 命令来运行服务器,以便用户可以使用应用程序?