如何获取图像文件的路径?

时间:2018-01-02 08:27:02

标签: image email react-native path screenshot

这是我捕获屏幕截图的功能。现在我需要当前捕获的屏幕截图的路径。因为我想用邮件附加捕获的图像。所以我需要那条图像路径。我怎样才能获得图像的路径?

takeSnap() {
    var albumName="ShilpaMela";
    image=captureScreen({
      format: "jpg",
      quality: 0.8
    })
    .then(
      uri => {
        CameraRollExtended.saveToCameraRoll({
          uri: uri,
          album: albumName
        }, 'photo')
      },
      error => console.error("Oops, snapshot failed", error)
    );
  }

handleEmail = () => {
    Mailer.mail({
      subject: 'Help',
      recipients: ['support@example.com'],
      ccRecipients: ['supportCC@example.com'],
      bccRecipients: ['supportBCC@example.com'],
      body: '<b>A Bold Body </b>',
      isHTML: true,
      attachment: {
        path: this.state.imageUri,  // The absolute path of the file from which to read data.
        type: 'jpg',   // Mime Type: jpg, png, doc, ppt, html, pdf
        name: '',   // Optional: Custom filename for attachment
      }
    }, (error, event) => {
      Alert.alert(
        error,
        event,
        [
          {text: 'Ok', onPress: () => console.log('OK: Email Error Response')},
          {text: 'Cancel', onPress: () => console.log('CANCEL: Email Error Response')}
        ],
        { cancelable: true }
      )
    });
  }

1 个答案:

答案 0 :(得分:0)

您可以从state

保存uri的路径
takeSnap() {
    var albumName="ShilpaMela";
    image=captureScreen({
        format: "jpg",
        quality: 0.8
    })
        .then(
            uri => {
                this.setState({imageUri: uri}) //save path
                CameraRollExtended.saveToCameraRoll({
                    uri: uri,
                    album: albumName
                }, 'photo')
            },
            error => console.error("Oops, snapshot failed", error)
        );
}

并使用this.state.imageUri

获取路径

P.S :确保takeSnap函数bindthis