UNPKG

@tencentcloud/roomkit-web-vue3

Version:

<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,

68 lines (67 loc) 1.7 kB
import { isWeChat } from "./environment.mjs"; const clipBoard = (data) => new Promise(async (resolve, reject) => { if (!isWeChat) { const textString = data.toString(); try { await navigator.clipboard.writeText(`${data}`); resolve({ code: 0, data }); } catch (err) { try { copyTextByDocumentExecCommand(textString); resolve({ code: 0, data }); } catch (err2) { reject({ code: -1, err: err2 }); } } return; } uni.setClipboardData({ data, success() { uni.getClipboardData({ success(data2) { resolve({ code: 0, data: data2 }); }, fail(err) { reject({ code: -1, err }); } }); }, fail(err) { reject({ code: -1, err }); } }); }); function copyTextByDocumentExecCommand(textString) { try { const input = document.createElement("input"); input.id = "copy-input"; input.readOnly = true; input.style.position = "absolute"; input.style.left = "-1000px"; input.style.zIndex = "-1000"; document.body.appendChild(input); input.value = textString; selectText(input, 0, textString.length); if (document.execCommand("copy")) { document.execCommand("copy"); } input.blur(); } catch (err) { } } function selectText(textbox, startIndex, stopIndex) { if (textbox.createTextRange) { const range = textbox.createTextRange(); range.collapse(true); range.moveStart("character", startIndex); range.moveEnd("character", stopIndex - startIndex); range.select(); } else { textbox.setSelectionRange(startIndex, stopIndex); textbox.focus(); } } export { clipBoard };