【发布时间】:2021-05-10 01:35:48
【问题描述】:
我正在尝试通过 official example for expo-location 在 React Native with Expo(Android 托管工作流)中获取用户位置。这是我的功能:
import Location from 'expo-location';
const handleLocationFinder = async () => {
const { status } = await Location.requestForegroundPermissionsAsync();
if (status !== 'granted') {
console.log('Permission denied. Enter the location manually.');
return;
}
const location = await Location.getCurrentPositionAsync({});
console.log(location);
};
但是,当我调用这个函数时,我得到了这个警告:
[Unhandled promise rejection: TypeError: undefined is not an object (evaluating '_expoLocation.default.requestForegroundPermissionsAsync')]
我尝试了什么:
- 在模拟器中重新安装应用;
- 全新模拟器;
- 我的实际手机(Android 8.0);
- 将
"permissions": ["ACCESS_FINE_LOCATION"]添加到app.json(尽管世博会似乎这样做); -
expo upgrade; - 祈祷。
平台信息(在expo upgrade之后):
- Android 11.0(模拟 Pixel 4)
-
expo: 41.0.1 -
react-native: sdk-41.0.0 -
expo-location: 12.0.4
【问题讨论】:
-
当我使用现在已弃用的 requestPermissionsAsync();相反,它可以工作,除了警告......
-
@PhilCowan,我实际上放弃了与 expo 的斗争并退出了一个简单的工作流程。之后,使用
react-native-permissions效果很好。
标签: android react-native geolocation expo