经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
微信小程序实现文字长按复制与一键复制功能全过程
来源:jb51  时间:2023/3/20 8:39:32  对本文有异议

一、不引入外部组件的实现方式

  1. <!-- index.wxml -->
  2. <view>
  3. <!-- 长按复制 -->
  4. <view bindlongtap="copyText" data-key="{{item.cdkey}}">{{ item.cdkey }}</view>
  5. <text bindlongtap="copyText" data-key="{{item.cdkey}}">{{ item.cdkey }}</text>
  6. <!-- 一键复制 -->
  7. <view bindtap="copyText" data-key="{{item.cdkey}}" > 复制 </view>
  8. </view>
  • 长按复制 可利用 bindlongtap 方法,手指长按 500ms 之后触发事件。
  • 一键复制 可利用 bindtap 方法,点击立即触发事件。
  1. // index.js
  2. copyText(e) {
  3. let key = e.currentTarget.dataset.key;
  4. wx.setClipboardData({ //设置系统剪贴板的内容
  5. data: key,
  6. success(res) {
  7. console.log(res, key);
  8. wx.getClipboardData({ // 获取系统剪贴板的内容
  9. success(res) {
  10. wx.showToast({
  11. title: '复制成功',
  12. })
  13. }
  14. })
  15. }
  16. })
  17. }

注:样式可自行添加适合的样式

效果:

二、引入外部组件的实现方式

select-text

可选文本组件。该组件有两种使用模式:长按出现选区,与浏览器默认效果一致;长按出现复制按钮,点击复制拷贝全部内容至剪贴板,常见于聊天对话框等场景。

需注意的时,为实现点击其它区域隐藏复制按钮,开发者可在页面最外层监听 tap 事件,并将 evt 对象赋值给 on-document-tap。

安装

npm install @miniprogram-component-plus/select-text

在页面 page.json 中

  1. // page.json
  2. {
  3. "usingComponents": {
  4. "mp-select-text": "@miniprogram-component-plus/select-text"
  5. }
  6. }

在页面index.wxml中

  1. <view bind:tap="handleTap">
  2. <view class="demo-block">
  3. <block wx:for="{{arr}}" wx:key="placement">
  4. <view class="list-item">
  5. <mp-select-text
  6. show-copy-btn
  7. placement="{{item.placement}}"
  8. value="{{item.value}}"
  9. data-id="{{index}}"
  10. bindcopy="onCopy"
  11. on-document-tap="{{evt}}"
  12. >
  13. </mp-select-text>
  14. </view>
  15. </block>
  16. <view class="list-item">
  17. <mp-select-text value="默认的长按效果与浏览器一致"></mp-select-text>
  18. </view>
  19. </view>
  20. </view>

效果

具体实现请参考:select-text组件

赶快去试试吧~

总结

到此这篇关于微信小程序实现文字长按复制与一键复制功能的文章就介绍到这了,更多相关微信小程序文字长按复制与一键复制内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号