Expo App未显示“位置许可”的弹出窗口

时间:2019-03-08 16:54:40

标签: android react-native expo

在我的博览会应用程序中,我想获取用户的位置,我正在尝试使用与世博会官方网站上的代码相同的代码来获取用户的位置。 但是expo应用程序没有显示位置许可的弹出窗口,请参见下面的代码

componentWillMount() {
this._getLocationAsync();
}

_getLocationAsync = async () => {
let { status } = await Permissions.askAsync(Permissions.CAMERA);
if (status !== 'granted') {
  this.setState({
    errorMessage: 'Permission to access location was denied',
  });
}

// let location = await Location.getCurrentPositionAsync({});
// this.setState({ location });
};

另一方面,如果我将Permissions.LOCATION替换为Permissions.CAMERA,则该应用会显示弹出窗口以获取权限。

请帮助我使用Android设备无法解决此问题

1 个答案:

答案 0 :(得分:1)

不建议使用第一个componentWillMount。尝试使用componentDidMount

第二,您可能已经向应用授予了位置权限。如果已经提供许可,请检查手机上的设置。如果是,请在设置上进行更改,然后重试。

componentDidMount() {
this._getLocationAsync();
}

_getLocationAsync = async () => {
let { status } = await Permissions.askAsync(Permissions.CAMERA);
if (status !== 'granted') {
  this.setState({
    errorMessage: 'Permission to access location was denied',
  });
}

// let location = await Location.getCurrentPositionAsync({});
// this.setState({ location });
};