Back to Uni App

Clipboard

docs/api/clipboard.md

2.3.311.5 KB
Original Source
<!-- ## uni.getClipboardData(options) @getclipboarddata -->

::: sourceCode

uni.getClipboardData(options) @getclipboarddata

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-clipboard

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-clipboard

:::

获得系统剪贴板的内容

getClipboardData 兼容性

Web微信小程序AndroidiOSHarmonyOSHarmonyOS(Vapor)
4.04.414.714.714.615.0

参数

名称类型必填默认值兼容性描述
optionsGetClipboardDataOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

options 的属性描述

名称类型必备默认值兼容性描述
success(result: GetClipboardDataSuccess) => void-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -成功返回的回调函数
fail(result: GetClipboardDataFail) => void-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -失败的回调函数
complete(result: any) => void-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -结束的回调函数(调用成功、失败都会执行)

GetClipboardDataSuccess 的属性值 @getclipboarddatasuccess-values

名称类型必备默认值兼容性描述
datastring-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -剪贴板的内容

GetClipboardDataFail 的属性值 @getclipboarddatafail-values

名称类型必备默认值兼容性描述
errCodenumber-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -
errSubjectstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -统一错误主题(模块)名称
dataany-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误信息中包含的数据
causeError-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -源错误信息,可以包含多个错误,详见SourceError
errMsgstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -
<!-- UTSAPIJSON.getClipboardData.example -->

注意

  • App(除 HarmonyOS)平台暂未内置,见插件市场
  • 读取剪贴板,在一些新的Android设备上,被列为单独的权限,如没有相关权限,则无法读取剪贴板。
  • 在鸿蒙上,读取剪贴板是一个高敏感权限,较难申请,参考鸿蒙文档

参见

<!-- ## uni.setClipboardData(options) @setclipboarddata -->

::: sourceCode

uni.setClipboardData(options) @setclipboarddata

GitCode: https://gitcode.com/dcloud/uni-api/tree/alpha/uni_modules/uni-clipboard

GitHub: https://github.com/dcloudio/uni-api/tree/alpha/uni_modules/uni-clipboard

:::

设置系统剪贴板的内容

setClipboardData 兼容性

Web微信小程序AndroidiOSHarmonyOSHarmonyOS(Vapor)
4.04.414.714.714.615.0

参数

名称类型必填默认值兼容性描述
optionsSetClipboardDataOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -

options 的属性描述

名称类型必备默认值兼容性描述
datastring-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -需要设置的内容
showToastboolean-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -是否弹出提示,默认弹出提示
success(result: SetClipboardDataSuccess) => void-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -成功返回的回调函数
fail(result: SetClipboardDataFail) => void-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -失败的回调函数
complete(result: any) => void-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -结束的回调函数(调用成功、失败都会执行)

SetClipboardDataFail 的属性值 @setclipboarddatafail-values

名称类型必备默认值兼容性描述
errCodenumber-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -
errSubjectstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -统一错误主题(模块)名称
dataany-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -错误信息中包含的数据
causeError-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -源错误信息,可以包含多个错误,详见SourceError
errMsgstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: -
<!-- UTSAPIJSON.setClipboardData.example -->

参见

示例

示例为hello uni-app x alpha分支,与最新HBuilderX Alpha版同步。与最新正式版同步的master分支示例另见 ::: preview https://hellouniappx.dcloud.net.cn/web/#/pages/API/clipboard/clipboard

appRedirect https://hellouniappx.dcloud.net.cn/appredirect.html?path=pages/API/clipboard/clipboard

示例

vue
<template>
  <view>
    <page-head :title="title"></page-head>
    <view class="uni-padding-wrap">
      <view class="uni-title">请输入剪贴板内容</view>
      <view class="uni-list">
        <view class="uni-list-cell">
          <input class="uni-input" type="text" placeholder="请输入剪贴板内容" :value="data.data" @input="dataChange" />
        </view>
      </view>
      <view class="uni-btn-v">
        <button type="primary" @click="setClipboard">存储数据</button>
        <button @tap="getClipboard">读取数据</button>
      </view>
    </view>
  </view>
</template>
<script setup lang="uts">
  type DataType = {
    data: string;
    // 自动化测试
    getDataTest: string;
    setClipboardTest: boolean;
  }

  const title = ref('get/setClipboardData')
  const data = reactive({
    data: '',
    // 自动化测试
    getDataTest: '',
    setClipboardTest: false
  } as DataType)

  // 页面卸载时清空剪贴板,避免影响其他测试用例
  onUnload(() => {
    uni.setClipboardData({
      data: ''
    })
  })

  const dataChange = (e:UniInputEvent) => {
    data.data = e.detail.value
  }

  const getClipboard = () => {
    uni.getClipboardData({
      success: (res) => {
        console.log(res.data);
        data.getDataTest = res.data;
        const content = res.data != "" ? '剪贴板内容为:' + res.data : '剪贴板暂无内容';
        uni.showModal({
          content,
          title: '读取剪贴板',
          showCancel: false
        })
      },
      fail: (err) => {
        uni.showModal({
          content: `读取剪贴板失败: ${err.errMsg}`,
          showCancel: false
        })
      }
    });
  }

  const setClipboard = () => {
    if (data.data.length == 0) {
      uni.showModal({
        title: '设置剪贴板失败',
        content: '内容不能为空',
        showCancel: false
      })
    } else {
      uni.setClipboardData({
        data: data.data,
        success: () => {
          data.setClipboardTest = true
          // 成功处理
          uni.showToast({
            title: '设置剪贴板成功',
            icon: "success"
          })
        },
        fail: () => {
          // bug:自动化测试时设置成功也进入了fail
          data.setClipboardTest = false
          // 失败处理
          uni.showToast({
            title: '储存数据失败!',
            icon: "none"
          })
        }
      });
    }
  }

  defineExpose({
    data,
    getClipboard,
    setClipboard
  })
</script>

<style>
</style>

:::

通用类型

GeneralCallbackResult

名称类型必备默认值兼容性描述
errMsgstring-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -错误信息