element-takesnapshot.uvue 2.4 KB
Newer Older
DCloud-WZF's avatar
DCloud-WZF 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
<template>
  <view id="snapshot-content">
    <page-head title="对本页面根view截图"></page-head>
    <view class="uni-padding-wrap">
      <text>this is text</text>
    </view>
    <button class="uni-btn btn-TakeSnapshot" type="primary" @tap="takeSnapshotClick">
      点击截图并替换显示下方图片
    </button>
    <image style="margin-left:auto;margin-right:auto;margin-top:20px;width:90%;" :src="snapImage" :mode="mode"
      @longpress="saveToAlbum"></image>
  </view>
</template>

<script lang="uts">
  export default {
    data() {
      return {
        mode: "center",//aspectFit
        snapImage: "/static/uni.png"
      }
    },
    methods: {
      takeSnapshotClick() {
        const view = uni.getElementById('snapshot-content')!
        view.takeSnapshot({
          success: (res) => {
            console.log(res.tempFilePath)
            this.snapImage = res.tempFilePath
            this.mode = 'widthFix'
            uni.showToast({
              title: '截图成功,路径:' + res.tempFilePath,
              icon: "none"
            })
          },
          fail: (res) => {
            console.log(res)
            uni.showToast({
              icon: 'error',
              title: '截图失败'
            })
          }
        })
      },
      saveToAlbum(e : TouchEvent) {
        // console.log(e.currentTarget!.getAttribute("src"));
        let filePath : string = e.currentTarget!.getAttribute("src") as string
        uni.showActionSheet({
          itemList: ["保存"],
          success: res => {
            // console.log(res.tapIndex);
            if (res.tapIndex == 0) {
              uni.saveImageToPhotosAlbum({
                filePath: filePath,
                success() {
                  uni.showToast({
                    position: "center",
                    icon: "none",
                    title: "图片保存成功,请到手机相册查看"
                  })
                },
                fail(e) {
                  uni.showModal({
                    content: "保存相册失败,errCode:" + e.errCode + ",errMsg:" + e.errMsg + ",errSubject:" + e.errSubject,
                    showCancel: false
                  });
                }
              })
            }
          },
          fail: () => { },
          complete: () => { }
        });
      }
    }
  }
77
</script>