【问题标题】:Android App crashes when I change Location permission from settings react native当我从设置更改位置权限时 Android 应用程序崩溃反应本机
【发布时间】:2022-11-28 18:10:15
【问题描述】:

我对 Android 上的 React Native 权限有疑问。如果用户在应用程序运行时从设备设置更改位置权限,应用程序会立即崩溃。

我在互联网上搜索了一段时间,我发现有人说这是在权限更改后重新启动应用程序的正常 android 行为,但那里有一些应用程序设法避免这种情况。

有没有人知道如何处理这个?

要求用户允许位置权限代码:

useEffect(() => {
    Geolocation.getCurrentPosition(
      ({coords}) => {
        let position = {
          latitude: coords.latitude,
          longitude: coords.longitude,
          latitudeDelta: latitudeDelta,
          longitudeDelta: longitudeDelta,
        };
        setLocation(position);
      },
      error => {
        if (enabled && Platform.OS === 'android') {
          return false;
        } else {
          Alert.alert(t('Access Denied'), error.message);
        }
      },
      {
        enableHighAccuracy: false,
        timeout: 10000,
        maximumAge: 0,
      },
    );
  }, []);

【问题讨论】:

  • 捕获让您的应用程序崩溃的异常。
  • 如何做到这一点在日志或任何地方都没有显示实际错误
  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。

标签: javascript android react-native android-permissions


【解决方案1】:

对于 IOS 和 Android 平台,如果您从操作系统设置更改权限设置,应用程序将重新启动。你无法绕过它。为了更好地处理权限,我建议您使用https://github.com/zoontek/react-native-permissions,它提供了两个平台的抽象值:

type PermissionStatus = 'unavailable' | 'denied' | 'limited' | 'granted' | 'blocked';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多