UNPKG

my-uniapp-tools

Version:

一个简洁稳定的 uni-app 开发工具库,提供剪贴板、本地存储、导航、系统信息等常用功能

2 lines (1 loc) 1.03 kB
"use strict";var s=require("./ui.cjs"),e=require("./core.cjs");const t={showToast:!0,successMessage:"复制成功",failMessage:"复制失败",timeout:5e3};exports.copyText=async function(o,a={}){const i={...t,...a},r="number"==typeof i.timeout&&Number.isFinite(i.timeout)&&i.timeout>0?i.timeout:0,u="string"==typeof o?o:String(o??"");return u?u.length>1e4?(i.showToast&&s.useToast("复制内容过长",!1,"error"),!1):await e.safeAsync(()=>new Promise(e=>{const t="undefined"==typeof uni?null:uni;if(!t||"function"!=typeof t.setClipboardData)return i.showToast&&s.useToast(i.failMessage,!1,"error"),void e(!1);let o=!1,a=null;const n=s=>{o||(o=!0,a&&(clearTimeout(a),a=null),e(s))};r>0&&(a=setTimeout(()=>{i.showToast&&s.useToast(i.failMessage,!1,"error"),n(!1)},r)),t.setClipboardData({data:u,showToast:!1,success:()=>{i.showToast&&s.useToast(i.successMessage),n(!0)},fail:()=>{i.showToast&&s.useToast(i.failMessage),n(!1)}})}),"clipboard","COPY_TEXT_ERROR")??!1:(i.showToast&&s.useToast("复制内容不能为空",!1,"error"),!1)};