React native 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

我使用expo XDE创建了一个新的react原生项目,我只添加了一个按钮来获取相机滚动权限,但它给出了一个错误:
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的菜单栏:

  • 模拟器>硬件>擦除所有内容和设置(等待完成)
  • Xcode>产品>清洁(等待完成)
  • react native run ios
    从终端生成新版本

  • 希望这会有所帮助。

    你能在真实的设备上而不是在ios模拟器上试用吗?在真实的设备上,权限返回为
    {status:“denied”,expires:“never”}
    。我已经进入了手机设置,我可以看到设置允许完全访问
    照片
    相机
    移动数据