相机胶卷,用户拒绝访问,-3311 React Native

时间:2016-01-06 19:35:35

标签: ios reactjs react-native camera-roll

这就是我的代码的样子

componentDidMount() {
  var fetchParams = {
    first: 25
  };

  CameraRoll.getPhotos(fetchParams, this.storeImages.bind(this), this.logError);
}

storeImages (data) {
  var assets = data.edges;
  var images = assets.map((asset) => asset.node.image);
  this.setState({
    images: images
  });
}

logError (error) {
  console.warn(error);
}

一旦我在应用程序中达到这一点,我就会收到以下错误:

Object {code: -3311, message: "User denied access", nativeStackIOS: Array[9], domain: "ALAssetsLibraryErrorDomain"}

有关如何修复它的任何线索?

顺便说一下,永远不会触发请求权限的弹出窗口。

2 个答案:

答案 0 :(得分:0)

当您致电CameraRoll.getPhotos时,iOS会启动权限对话框。

iOS Permissions dialog

如果您不允许访问照片,则会收到您要报告的错误。如果您允许访问,一切都应该没问题。未经许可,您将无法访问用户的照片。

答案 1 :(得分:0)

您可以使用此repo(https://github.com/yonahforst/react-native-permissions)来检查权限并在应用中随时随地请求它们:-) 我正在使用它并且效果很好 希望能帮助到你 示例:

安装

npm install --save react-native-permissions
rnpm link
const Permissions = require('react-native-permissions');

检查请求

Permissions.getPermissionStatus('photo').then(response => {
    //response is one of: 'authorized', 'denied', 'restricted', or 'undetermined'
});

请求权限

Permissions.requestPermission('photo').then(response => {

});