unicloud-call-function.uvue 1.8 KB
Newer Older
雪洛's avatar
雪洛 已提交
1 2
<template>
  <!-- #ifdef APP -->
H
hdx 已提交
3
  <scroll-view class="page-scroll-view">
4
  <!-- #endif -->
雪洛's avatar
雪洛 已提交
5 6 7 8 9 10 11 12
    <view>
      <page-head :title="title"></page-head>
      <view class="uni-padding-wrap uni-common-mt">
        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @click="callFunction">请求云函数</button>
        </view>
      </view>
    </view>
13
  <!-- #ifdef APP -->
雪洛's avatar
雪洛 已提交
14 15 16
  </scroll-view>
  <!-- #endif -->
</template>
H
hdx 已提交
17

雪洛's avatar
雪洛 已提交
18 19 20 21
<script>
  export default {
    data() {
      return {
雪洛's avatar
雪洛 已提交
22 23
        title: '请求云函数',
        callFunctionResult: {},
24 25
        callFunctionError: {},
        isUniTest: false
雪洛's avatar
雪洛 已提交
26 27 28 29 30
      }
    },
    onLoad() {
    },
    onUnload() {
H
hdx 已提交
31
      if (this.isUniTest) {
32 33
        uni.hideToast()
      }
雪洛's avatar
雪洛 已提交
34 35
    },
    methods: {
36 37 38 39 40 41 42 43
      notify(content : string, title : string) {
        if (!this.isUniTest) {
          uni.showModal({
            title,
            content,
            showCancel: false
          })
        } else {
44
          console.log(title, content)
45 46
        }
      },
H
hdx 已提交
47
      async callFunction() : Promise<void> {
雪洛's avatar
雪洛 已提交
48 49 50
        uni.showLoading({
          title: '加载中...'
        })
51
        await uniCloud.callFunction({
雪洛's avatar
雪洛 已提交
52 53 54 55
          name: 'echo-cf',
          data: {
            num: 1,
            str: 'ABC'
雪洛's avatar
雪洛 已提交
56
          }
雪洛's avatar
雪洛 已提交
57
        }).then(res => {
雪洛's avatar
雪洛 已提交
58
          const result = res.result
雪洛's avatar
雪洛 已提交
59
          this.callFunctionResult = result
雪洛's avatar
雪洛 已提交
60 61
          console.log(JSON.stringify(result))
          uni.hideLoading()
62
          this.notify(result['showMessage'] as string, '提示')
雪洛's avatar
雪洛 已提交
63
        }).catch((err : any | null) => {
雪洛's avatar
雪洛 已提交
64
          const error = err as UniCloudError
雪洛's avatar
雪洛 已提交
65 66 67 68
          this.callFunctionError = {
            errCode: error.errCode,
            errMsg: error.errMsg
          }
雪洛's avatar
雪洛 已提交
69
          uni.hideLoading()
70
          this.notify(error.errMsg, '错误')
雪洛's avatar
雪洛 已提交
71 72 73 74 75 76 77
        })
      }
    }
  }
</script>

<style>
雪洛's avatar
雪洛 已提交
78
</style>