diff --git a/ldcake-ui/libs/utils/clipboard.js b/ldcake-ui/libs/utils/clipboard.js index 6e0ca20432d0c176d112f605578ec825c7f4a4ff..2549256f9791a784b9ddc3f75a10867e896ef0c7 100644 --- a/ldcake-ui/libs/utils/clipboard.js +++ b/ldcake-ui/libs/utils/clipboard.js @@ -1,31 +1,67 @@ -export const setClipboardData = (content) => { - // #ifdef H5 - try{ - let textarea = document.createElement("textarea") - textarea.value = content - textarea.readOnly = "readOnly" - document.body.appendChild(textarea) - textarea.select() // 选择对象 - textarea.setSelectionRange(0, content.length) //核心 - let result = document.execCommand("Copy") // 执行浏览器复制命令 - textarea.remove() - uni.showToast({ - title: '内容已复制', - icon: 'none', - duration: 2000 - }); - return result - }catch(e){ - return null - } - // #endif - // #ifndef H5 - uni.setClipboardData({ - data: content - }); - // #endif +/** + * 获取系统剪贴板内容 + * @returns {Promise} 剪贴板内容 + */ +export const getClipboardData = () => { + return new Promise((success, fail) => { + // #ifndef H5 + uni.getClipboardData({ + success: ({ + data + }) => success(data), + fail + }) + // #endif + + // #ifdef H5 + try { + navigator.clipboard.readText().then(success).catch(fail) + } catch (error) { + fail(error) + } + // #endif + }) +} + +/** + * 设置系统剪贴板的内容 + * @param {string} data 需要设置的内容 + * @returns {Promise} 设置的内容 + */ +export const setClipboardData = (data) => { + return new Promise((success, fail) => { + // #ifndef H5 + uni.setClipboardData({ + data, + success, + fail + }) + // #endif + + // #ifdef H5 + try { + const textarea = document.createElement('textarea') + textarea.value = data + textarea.readOnly = true + document.body.appendChild(textarea) + textarea.select() + textarea.setSelectionRange(0, data.length) + document.execCommand('copy') + uni.showToast({ + title: '内容已复制', + icon: 'none', + duration: 2000 + }); + textarea.remove() + success(data) + } catch (error) { + fail(error) + } + // #endif + }) } export default { + getClipboardData, setClipboardData -} \ No newline at end of file +} diff --git a/pages.json b/pages.json index 70675e7f187045112e14b5a603faab56389c4f82..75dbfceaa65a449d2cb3711c89e25bc59731de6e 100644 --- a/pages.json +++ b/pages.json @@ -10,56 +10,56 @@ }, { "path": "pages/components/date-picker/date-picker", "style": { - "navigationBarTitleText": "日期选择器(date-picker)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/spin/spin", "style": { - "navigationBarTitleText": "Spin(加载中)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/fabutton/fabutton", "style": { - "navigationBarTitleText": "悬浮按钮(fabutton)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/mp-tips/mp-tips", "style": { - "navigationBarTitleText": "右上角引导(mp-tips)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/captcha/captcha", "style": { - "navigationBarTitleText": "获取验证码(captcha)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/tools/storage/storage", "style": { - "navigationBarTitleText": "数据缓存(storage)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/tools/cache/cache", "style": { - "navigationBarTitleText": "定时缓存(cache)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/tools/copy/copy", "style": { - "navigationBarTitleText": "复制(setClipboardData)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } diff --git a/pages/components/captcha/captcha.vue b/pages/components/captcha/captcha.vue index a090f39e038befcdaf5190f3a0f8640dddef4c6e..1978252d48882b0d8b9b0eef0a0beaba72c8b175 100644 --- a/pages/components/captcha/captcha.vue +++ b/pages/components/captcha/captcha.vue @@ -20,6 +20,11 @@ second: 20 } }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods:{ handleSend(val) { this.isStart = val diff --git a/pages/components/date-picker/date-picker.vue b/pages/components/date-picker/date-picker.vue index 2c1a7aab1fa6684d5275675402b338e01ebeabea..ba11c4b1fa2ff1212d21e2a8a0650997e1d6135d 100644 --- a/pages/components/date-picker/date-picker.vue +++ b/pages/components/date-picker/date-picker.vue @@ -18,6 +18,11 @@ isShow: false, } }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods: { confirm(e){ this.result = e; diff --git a/pages/components/fabutton/fabutton.vue b/pages/components/fabutton/fabutton.vue index 49c78e07275864475b53df3d1b08ae60994bb3f0..72306c6014178da5782288ec0149da3173872ffb 100644 --- a/pages/components/fabutton/fabutton.vue +++ b/pages/components/fabutton/fabutton.vue @@ -30,6 +30,11 @@ isDock: true } }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods:{ handleChange(val) { this.isDock = !val diff --git a/pages/components/mp-tips/mp-tips.vue b/pages/components/mp-tips/mp-tips.vue index cbb42cde934596a81c0c76cba145594ac51229e5..a5fb6aa04ac3cbd6b9c83fa5b0975ab167034604 100644 --- a/pages/components/mp-tips/mp-tips.vue +++ b/pages/components/mp-tips/mp-tips.vue @@ -24,6 +24,11 @@ }; }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods:{ close(){ console.log("close") diff --git a/pages/components/spin/spin.vue b/pages/components/spin/spin.vue index 61fb1c9fa4a7563b9881fb9e8666f047e4427b74..31237a9b3dc83cfd95e6fcdc3477a7c606184f78 100644 --- a/pages/components/spin/spin.vue +++ b/pages/components/spin/spin.vue @@ -49,6 +49,11 @@ isFullscreen: false }; }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods: { handleChange(val) { this.isShow = !val diff --git a/pages/index/index.vue b/pages/index/index.vue index d91780143a0de2aa35131470f07ad719c8cbeb9e..ebe5fb997657e098abb3894e613b6c4c3cbe4a7e 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -11,13 +11,13 @@ 基础组件 - {{item.name}} 工具库 - {{item.name}} @@ -62,7 +62,7 @@ url: '/pages/tools/cache/cache' }, { - name: '复制(setClipboardData)', + name: '剪贴板(clipboard)', url: '/pages/tools/copy/copy' }, ] diff --git a/pages/tools/cache/cache.vue b/pages/tools/cache/cache.vue index dcfde4be937c62d805bba76076bc4b153cec259b..222f1037ac1ae199c2291eb807aa61c1324976e9 100644 --- a/pages/tools/cache/cache.vue +++ b/pages/tools/cache/cache.vue @@ -25,6 +25,11 @@ data() { return {} }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods: { setCache(){ this.$c.setCache("cache", "定时缓存10秒", 10) diff --git a/pages/tools/copy/copy.vue b/pages/tools/copy/copy.vue index 8fd6e3a1cf91d5e93178da86a24ef90632b7de83..9fe7269cc90f7ce1bfe5c6a83923255557b9ed33 100644 --- a/pages/tools/copy/copy.vue +++ b/pages/tools/copy/copy.vue @@ -4,7 +4,10 @@ 演示效果 - 复制内容(this.$c.setClipboardData) + 复制内容(this.$c.setClipboardData) + + + 获取内容(this.$c.getClipboardData) @@ -13,9 +16,19 @@