React native Expo XDE React本机摄像头滚动权限`未确定`
我使用expo XDE创建了一个新的react原生项目,我只添加了一个按钮来获取相机滚动权限,但它给出了一个错误:React native Expo XDE React本机摄像头滚动权限`未确定`,react-native,permissions,expo,React Native,Permissions,Expo,我使用expo XDE创建了一个新的react原生项目,我只添加了一个按钮来获取相机滚动权限,但它给出了一个错误:error:缺少相机滚动权限。 当我记录Permissions.askAsync()方法的返回值时,它告诉我权限是{status:“undeminated”,expires:“never”} 是否可以明确进入设备设置并允许expo应用程序的摄像机滚动权限?我正在使用ios模拟器作为设备,但我找不到允许相机滚动权限的设置 我的App.js代码如下: import React from
error:缺少相机滚动权限。
当我记录Permissions.askAsync()
方法的返回值时,它告诉我权限是{status:“undeminated”,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',
},
});
从“React”导入React;
从“react native”导入{样式表、文本、视图、TouchableOpacity};
从“expo”导入{权限,ImagePicker};
导出默认类App扩展React.Component{
render(){
返回(
打开App.js开始使用你的应用程序!
{
调试器;
console.log(权限.摄像头滚动)
返回Permissions.getAsync(Permissions.CAMERA\u ROLL)
。然后((许可)=>{
调试器;
返回ImagePicker.launchImageLibraryAsync({
高度:“100px”,
宽度:“100px”,
base64:对
})。然后((结果)=>{
const{base64}=结果;
调试器;
返回base64;
}).catch((e)=>{
控制台日志(e);
调试器;
});
}).catch((e)=>{
控制台日志(e);
调试器;
});
}}
>获取图像
);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“#fff”,
对齐项目:“居中”,
为内容辩护:“中心”,
},
});
这是我为一个非Expo示例所做的,使用模拟器和Xcode的菜单栏:
react native run ios
从终端生成新版本希望这会有所帮助。你能在真实的设备上而不是在ios模拟器上试用吗?在真实的设备上,权限返回为
{status:“denied”,expires:“never”}
。我已经进入了手机设置,我可以看到设置允许完全访问照片
,相机
,移动数据
。