tui-clipboard.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * 复制文本 兼容H5
  3. * 来自 ThorUI | 文档地址: www.donarui.com
  4. * @author echo.
  5. * @version 1.0.0
  6. **/
  7. // #ifdef H5
  8. import ClipboardJS from "./clipboard.min.js"
  9. // #endif
  10. const thorui = {
  11. /**
  12. * data 需要复制的数据
  13. * callback 回调
  14. * e 当用户点击后需要先请求接口再进行复制时,需要传入此参数,或者将异步请求转为同步 (H5端)
  15. * **/
  16. getClipboardData: function(data,callback,e) {
  17. // #ifdef APP-PLUS || MP
  18. uni.setClipboardData({
  19. data: data,
  20. success(res) {
  21. ("function" == typeof callback) && callback(true)
  22. },
  23. fail(res) {
  24. ("function" == typeof callback) && callback(false)
  25. }
  26. })
  27. // #endif
  28. // #ifdef H5
  29. let event = window.event || e || {}
  30. let clipboard = new ClipboardJS("", {
  31. text: () => data
  32. })
  33. clipboard.on('success', (e) => {
  34. ("function" == typeof callback) && callback(true)
  35. clipboard.off('success')
  36. clipboard.off('error')
  37. clipboard.destroy()
  38. });
  39. clipboard.on('error', (e) => {
  40. ("function" == typeof callback) && callback(false)
  41. clipboard.off('success')
  42. clipboard.off('error')
  43. clipboard.destroy()
  44. });
  45. clipboard.onClick(event)
  46. // #endif
  47. }
  48. };
  49. module.exports = {
  50. getClipboardData: thorui.getClipboardData
  51. };