【问题标题】:React native for Android navigator geolocation not runningReact native for Android navigator geolocation未运行
【发布时间】:2016-03-30 01:11:59
【问题描述】:

在我的 iOS 应用上,地理位置可以正常工作,并在观察者功能上获取我的位置。

但是对于 Android,当我放入警报或控制台日志时,代码似乎永远不会在成功或失败回调中执行。

watchID: (null: ?number),

this.watchID = navigator.geolocation.watchPosition(
    (position) => {
        this.setState({ 
            userLocation: position,
            geo: true
        }, this.fetchBusinesses());
    },
    (error) => console.log(error.message),
    {enableHighAccuracy: true, timeout: 2000, maximumAge: 1000}
    );

【问题讨论】:

  • 按照这里:facebook.github.io/react-native/docs/geolocation.html - 你的清单中有<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />(在 JAVA 端)吗?此外,Android Studio 中是否有任何关于该过程中可能出现的 JAVA 端错误的信息?
  • 我的清单 XML 文件中确实有这个。当我删除它进行测试时,它确实提醒我说它丢失了,所以它确实承认它已被发现。我没有使用 Android Studio 在 npm 上编译 react-native run-android,所以除了 console.logs 之外我看不到任何日志。
  • 如果你的机器上连接了一个设备,即使你通过终端编译和运行,你也会在 Android Studio 中看到很多输出。它帮助我在进行反应编码时调试了许多问题。 :) 值得一试。抱歉,我无法提供更多帮助
  • 您是在模拟器还是在设备上进行测试?如果在模拟器上是哪个?
  • 因为我用的是模拟器。在真实设备上它可以工作,感谢您的帮助。

标签: android geolocation react-native


【解决方案1】:

如果您运行的是最新的 Android,您手动将“位置”设置为开启。 此开关位于设置 -> 应用 -> {您的应用} -> 权限下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多