ImagePicker说我没有相机胶卷权限,但我找不到有关此内容的文档



我在应用程序中进行了一个上传屏幕,我想我已经大部分了,但是它给我警告缺少相机滚动权限。我想帮助解决这个问题。

我在线寻找文档。

这是文档

import { View, Dimensions, StyleSheet, Button } from 'react-native';
import { Icon } from 'native-base';
import { ImagePicker } from 'expo';
var { width, height } = Dimensions.get('window');
class UploadTab extends Component {
  static navigationOptions = {
    tabBarIcon: ({ tintColor }) => (
      <Icon name="ios-add-circle" style={{ color: tintColor }} />
    ),
  };
  state = {
    image: null,
  };
  _handleChoosePhoto = async () => {
    let result = await ImagePicker.launchImageLibraryAsync({
      allowsEditing: true,
      aspect: [4, 3],
    });
    console.log(result);
    if (!result.cancelled) {
      this.setState({ image: result.uri });
    }
    const options = {};
    ImagePicker.launchImageLibrary(options, (response) => {
      console.log('response', response);
    });
  };
  render() {
    let { image } = this.state;
    return (
      <View
        style={{
          flex: 1,
          alignItems: 'center',
          justifyContent: 'center',
          backgroundColor: '#1f1f1f',
          width: width,
          height: height,
        }}>
        <Button title="Choose Photo" onPress={this._handleChoosePhoto} />
        {image && (
          <Image source={{ uri: image }} style={{ width: 200, height: 200 }} />
        )}
      </View>
    );
  }
}
export default UploadTab;

我需要按钮打开相机卷,以便我可以选择要上传的内容。

警告(黄色(可能的未置信的承诺拒绝(ID:6(:错误:缺少相机卷许可。...

文档中:https://docs.expo.io/versions/latest/sdk/imagepicker/#api

显示系统UI用于选择手机库中的图像或视频。仅在iOS上需要Permissions.CAMERA_ROLL

和:https://docs.expo.io/versions/latest/sdk/permissions/#permissionsassaskasynctypes

async function getLocationAsync() {
  const { Location, Permissions } = Expo;
  // permissions returns only for location permissions on iOS and under certain conditions, see Permissions.LOCATION
  const { status, permissions } = await Permissions.askAsync(Permissions.LOCATION);
  if (status === 'granted') {
    return Location.getCurrentPositionAsync({enableHighAccuracy: true});
  } else {
    throw new Error('Location permission not granted');
  }
}

在您需要的许可下交换位置

最新更新