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

Posted

技术标签:

【中文标题】Expo XDE React-Native CAMERA_ROLL 权限“未确定”【英文标题】:Expo XDE React-Native CAMERA_ROLL Permission `undetermined` 【发布时间】: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 【参考方案1】:

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

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

希望这会有所帮助。

【讨论】:

以上是关于Expo XDE React-Native CAMERA_ROLL 权限“未确定”的主要内容,如果未能解决你的问题,请参考以下文章

expo 应用程序中的 React-native 安装问题

Expo XDE 项目有问题

无法使用本地网络上的 expo 客户端连接到 expo xde

Expo XDE 无法运行应用程序抛出 Tunnel packager not found

React-native (expo) - 无效类型

使用 react-native (expo) 切换手电筒