【问题标题】:Expo XDE React-Native CAMERA_ROLL Permission `undetermined`Expo XDE React-Native CAMERA_ROLL 权限“未确定”
【发布时间】: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"}。我已经进入手机设置,我可以看到设置被设置为允许完全访问PhotosCameraMobile Data

标签: react-native permissions expo


【解决方案1】:

这是我为非 Expo 示例所做的,使用 Simulator 和 Xcode 的菜单栏:

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 2017-12-08
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多