【发布时间】:2018-05-21 10:33:57
【问题描述】:
我使用 expo XDE 创建了一个新的 react native 项目,我只是添加了一个按钮来获取相机胶卷权限,但它给出了一个错误:Error: Missing camera roll permission.
当我记录Permissions.askAsync() 方法的返回值时,它告诉我权限是{status: "undetermined", expires: "never"}。
是否可以显式进入设备设置并允许 expo 应用程序的相机胶卷权限?我正在使用ios模拟器作为设备,但我找不到允许相机胶卷权限的设置。
我的App.js代码如下:
import React from 'react';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
import { Permissions, ImagePicker } from 'expo';
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Text>Open up App.js to start working on your app!</Text>
<TouchableOpacity
onPress={() => {
debugger;
console.log(Permissions.CAMERA_ROLL)
return Permissions.getAsync(Permissions.CAMERA_ROLL)
.then((permission) => {
debugger;
return ImagePicker.launchImageLibraryAsync({
height: '100px',
width: '100px',
base64: true
}).then((result) => {
const { base64 } = result;
debugger;
return base64;
}).catch((e) => {
console.log(e);
debugger;
});
}).catch((e) => {
console.log(e);
debugger;
});
}}
><Text>get image</Text></TouchableOpacity>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
【问题讨论】:
-
可以在真机上试试,而不是ios模拟器吗?
-
在真机上,权限返回为
{status: "denied", expires: "never"}。我已经进入手机设置,我可以看到设置被设置为允许完全访问Photos、Camera、Mobile Data。
标签: react-native permissions expo