Expo XDE React-Native CAMERA_ROLL权限“未确定”

时间:2018-05-21 10:33:57

标签: react-native permissions expo

我使用expo XDE创建了一个新的react本机项目,我只是添加了一个按钮来获取相机滚动权限,但是它给出了一个错误:Error: Missing camera roll permission.

当我记录Permissions.askAsync()方法的返回值时,它会告诉我权限为{status: "undetermined", expires: "never"}

是否可以明确进入设备的设置并允许展示应用的相机胶卷权限?我正在使用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',
  },
});

1 个答案:

答案 0 :(得分:0)

这是我针对非EXPO示例所做的事情,使用了Simulator和Xcode的菜单栏:

  1. 模拟器>硬件>擦除所有内容和设置(等待完成)
  2. Xcode>产品>清洁(等待完成)
  3. react-native run-ios用于从终端构建新版本

希望这会有所帮助。