From cb607dabaadff3fa4f23353e3938c0c968bde5ca Mon Sep 17 00:00:00 2001 From: tianjiaxing Date: Wed, 26 May 2021 22:23:44 +0800 Subject: [PATCH] feat: setClipboardData/getClipboardData support for h5 --- package.json | 4 +- packages/uni-h5/package.json | 1 - src/platforms/h5/helpers/todo-api.js | 4 +- .../h5/service/api/device/clipboard.js | 45 +++++++++++++++++++ yarn.lock | 8 ++-- 5 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 src/platforms/h5/service/api/device/clipboard.js diff --git a/package.json b/package.json index 790839e7b..d56391747 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "release:v3": "npm run lint:cli && lerna publish --no-git-tag-version --force-publish=* --npm-tag=v3" }, "dependencies": { - "@dcloudio/uni-i18n": "^0.0.3", "base64-arraybuffer": "^0.2.0", "intersection-observer": "^0.7.0", "pako": "^1.0.11", @@ -42,6 +41,7 @@ }, "private": true, "devDependencies": { + "@dcloudio/uni-i18n": "^2.0.0-31920210514002", "@rollup/plugin-alias": "^3.1.0", "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-json": "^4.1.0", @@ -148,4 +148,4 @@ "main": "index.js", "description": "", "author": "" -} +} diff --git a/packages/uni-h5/package.json b/packages/uni-h5/package.json index c80d9f5e1..13d142256 100644 --- a/packages/uni-h5/package.json +++ b/packages/uni-h5/package.json @@ -14,7 +14,6 @@ "author": "fxy060608", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-i18n": "^0.0.3", "base64-arraybuffer": "^0.2.0", "intersection-observer": "^0.7.0", "pako": "^1.0.11", diff --git a/src/platforms/h5/helpers/todo-api.js b/src/platforms/h5/helpers/todo-api.js index 82fd8a06a..4a574516d 100644 --- a/src/platforms/h5/helpers/todo-api.js +++ b/src/platforms/h5/helpers/todo-api.js @@ -13,8 +13,8 @@ export default [ 'startGyroscope', 'stopGyroscope', 'scanCode', - 'setClipboardData', - 'getClipboardData', + // 'setClipboardData', + // 'getClipboardData', 'setScreenBrightness', 'getScreenBrightness', 'setKeepScreenOn', diff --git a/src/platforms/h5/service/api/device/clipboard.js b/src/platforms/h5/service/api/device/clipboard.js new file mode 100644 index 000000000..9e1ddd076 --- /dev/null +++ b/src/platforms/h5/service/api/device/clipboard.js @@ -0,0 +1,45 @@ + +export function getClipboardData () { + const pasteText = document.getElementById('#clipboard') + const data = pasteText?.value + if (data) { + return { + data, + errMsg: 'getClipboardData:ok' + } + } else { + return { + errMsg: 'getClipboardData:fail' + } + } +} + +export function setClipboardData ({ + data +}) { + const pasteText = document.getElementById('#clipboard') + pasteText?.remove() + const textarea = document.createElement('textarea') + textarea.id = '#clipboard' + textarea.style.position = 'absolute' + textarea.style.top = '0' + textarea.style.zIndex = '-9999' + document.body.appendChild(textarea) + textarea.value = data + textarea.focus() + textarea.select() + const result = document.execCommand('Copy', false, null) + if (result) { + uni.showToast({ + title: '倍刢成功', + icon: 'none' + }) + return { + errMsg: 'setClipboardData:ok' + } + } else { + return { + errMsg: 'setClipboardData:fail' + } + } +} diff --git a/yarn.lock b/yarn.lock index b9211c6d6..ec0710608 100644 --- a/yarn.lock +++ b/yarn.lock @@ -743,10 +743,10 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@dcloudio/uni-i18n@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@dcloudio/uni-i18n/-/uni-i18n-0.0.3.tgz#c7ff6ea6a4ea5cd5ef8dc3d674afa2e64502c151" - integrity sha512-BJGl0yUkuTMv6v0r1lUzq2EURkSoM/CoKbjlf7xlDXDTUqkhUGjK5epTq2hwsi26HTxTjvl6/vf50Q5wSTFApA== +"@dcloudio/uni-i18n@^2.0.0-31920210514002": + version "2.0.0-31920210514002" + resolved "https://registry.yarnpkg.com/@dcloudio/uni-i18n/-/uni-i18n-2.0.0-31920210514002.tgz#f63d14c234ea0353fabe2d8c681601c7ba07e488" + integrity sha512-shHf27U0KEs//ieCBG1R1aRKNDn6KwcVUIb5GsPuDOqoN7WQY+nEz9QFdOSQY8j9tX4ABOAc1ra0Opz8xFVngA== "@hapi/address@2.x.x": version "2.1.4" -- GitLab