【问题标题】:How can I get the path of image file?如何获取图像文件的路径?
【发布时间】:2018-01-02 08:27:01
【问题描述】:

这是我的截图功能。现在我需要当前捕获的屏幕截图的路径。因为我想用邮件附加捕获的图像。所以我需要那个图像路径。如何获取图片的路径?

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 }
      )
    });
  }

【问题讨论】:

    标签: image email react-native path screenshot


    【解决方案1】:

    您可以从uri 保存到您的state 的路径

    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:确保函数 takeSnapbindthis

    【讨论】:

    • 现在它不会显示“无法附加文件”消息,但不会在邮件中附加任何内容。是否需要在附件代码中添加其他内容?代码:附件:{路径:this.state.imageUri}
    • 检查附件代码中的console.log(this.state.imageUri)。是空的吗?请出示完整的附件代码。
    • 我编辑了我的帖子并添加了电子邮件功能的代码。请检查。
    • 你检查this.state.imageUrihandleEmail函数中的值了吗?是不是空的?
    • 它是空的。现在检查了。但为什么?没看懂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多