element-takesnapshot.uvue 1.6 KB
Newer Older
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
<template>
  <view>
    <page-head id="page-head" title="getElementById"></page-head>
    <view class="uni-padding-wrap" id="snapshot-content">
      <text id="text">this is text</text>
      <view id="view" class="uni-common-mt" style="border: 1px solid red"
        >this is view</view
      >
      <button class="uni-btn" @click="changeViewStyle">
        修改 view 宽高及背景色
      </button>

      <button class="uni-btn" type="primary" @click="takeSnapshotClick">
        点击截图
      </button>
    </view>
    <image style="margin-top: 20px;" :src="snapImage" mode="aspectFit"></image>
  </view>
</template>

<script lang="uts">
export default {
  data() {
    return {
      snapImage:"/static/uni.png"
    }
  },
  methods: {

    changeViewStyle(){
      const text = uni.getElementById('text')!
      text.style.setProperty('color', 'red')

      const view = uni.getElementById('view')!
      view.style.setProperty('width', '90%')
      view.style.setProperty('height', '50px')
      view.style.setProperty('backgroundColor', '#007AFF')
    },
    takeSnapshotClick(){
      const view = uni.getElementById('snapshot-content')!
      view.takeSnapshot({
        success:function(res:TakeSnapshotSuccess){
          console.log(res.tempFilePath)
          this.snapImage = res.tempFilePath
          uni.showToast({
            title:'截图成功'
          })
        },
        fail:function(res:TakeSnapshotFail){
          console.log(res)
          uni.showToast({
            icon:'error',
            title:'截图失败'
          })
        }
      } as TakeSnapshotOptions)
    }
  }
}
</script>