反应原生检查位置服务是不是在iOS上

Posted

技术标签:

【中文标题】反应原生检查位置服务是不是在iOS上【英文标题】:react native check if location services are on iOS反应原生检查位置服务是否在iOS上 【发布时间】:2017-04-11 10:12:33 【问题描述】:

我在 react native 中使用 navigator.geolocation.getCurrentPosition() 并且工作正常。 但是,如果关闭位置服务(引导用户进行设置的对话框),我希望能够做出很好的反应。 我找到了适用于 android 的插件,我认为它可以正常工作: https://www.npmjs.com/package/react-native-android-location-services-dialog-box 在ios中应该怎么做?

【问题讨论】:

【参考方案1】:

编辑

你可以使用这个做得很好的第三者library

然后像这样使用它:

Location.getAuthorizationStatus((authorization) => 
  console.log(authorization)
);

上一个答案

getCurrentPosition 可以接受错误回调。如果未启用位置,则会触发此操作。

你可以这样做:

navigator.geolocation.getCurrentPosition(
  (position) => 
    this.setState( position );
  ,
  (error) => 
    console.log(alert);
  ,
  enableHighAccuracy: true, timeout: 20000, maximumAge: 1000
);

您可以查看docs了解更多信息。

【讨论】:

谢谢,我检查过了,但错误没有接缝返回一个清晰的错误代码,可以确定错误的来源...... 除此之外,这对打开操作系统参数没有帮助 要在ios中打开设置,您可以使用:Linking.openURL('app-settings:')。更多信息here @alexandre 您也可以使用我在答案中添加的库。 是的,非常感谢!你知道如何对错误类型进行排序吗?像错误,因为您的应用没有授权位置,因为位置关闭而出现错误,因为无法检索位置而出现错误,错误超时......

以上是关于反应原生检查位置服务是不是在iOS上的主要内容,如果未能解决你的问题,请参考以下文章

如何在请求 iOS 原生反应权限时更改弹出消息?

地理位置反应原生

如何在占位符文本上启动光标位置中心反应原生?

geolib在反应原生状态下未准备好地理位置坐标

对原生地理位置做出反应,而不是在 android 模拟器上询问用户权限

检测用户是不是在域上启用了位置服务