首頁 > 軟體

微信小程式實現文字長按複製與一鍵複製功能全過程

2023-03-19 06:01:23

一、不引入外部元件的實現方式

 <!-- index.wxml -->
<view>
  <!-- 長按複製 -->
  <view bindlongtap="copyText" data-key="{{item.cdkey}}">{{ item.cdkey }}</view>
  <text bindlongtap="copyText" data-key="{{item.cdkey}}">{{ item.cdkey }}</text>
   <!-- 一鍵複製 -->
  <view bindtap="copyText" data-key="{{item.cdkey}}" > 複製 </view>
</view>
  • 長按複製 可利用 bindlongtap 方法,手指長按 500ms 之後觸發事件。
  • 一鍵複製 可利用 bindtap 方法,點選立即觸發事件。
// index.js
 copyText(e) {
    let key = e.currentTarget.dataset.key;
    wx.setClipboardData({ //設定系統剪貼簿的內容
      data: key,
      success(res) {
        console.log(res, key);
        wx.getClipboardData({ // 獲取系統剪貼簿的內容
          success(res) {
            wx.showToast({
              title: '複製成功',
            })
          }
        })
      }
    })
  }

注:樣式可自行新增適合的樣式

效果:

二、引入外部元件的實現方式

select-text

可選文字元件。該元件有兩種使用模式:長按出現選區,與瀏覽器預設效果一致;長按出現複製按鈕,點選複製拷貝全部內容至剪貼簿,常見於聊天對話方塊等場景。

需注意的時,為實現點選其它區域隱藏複製按鈕,開發者可在頁面最外層監聽 tap 事件,並將 evt 物件賦值給 on-document-tap。

安裝

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

在頁面 page.json 中

// page.json
{
    "usingComponents": {
        "mp-select-text": "@miniprogram-component-plus/select-text"
    }
}

在頁面index.wxml中

<view bind:tap="handleTap">
  <view class="demo-block">
    <block wx:for="{{arr}}" wx:key="placement">
      <view class="list-item">
        <mp-select-text 
          show-copy-btn 
          placement="{{item.placement}}" 
          value="{{item.value}}" 
          data-id="{{index}}" 
          bindcopy="onCopy"
          on-document-tap="{{evt}}"
        >
        </mp-select-text>
      </view>
    </block>
    <view class="list-item">
      <mp-select-text value="預設的長按效果與瀏覽器一致"></mp-select-text>
    </view>
  </view>
</view>

效果

具體實現請參考:select-text元件

趕快去試試吧~

總結

到此這篇關於微信小程式實現文字長按複製與一鍵複製功能的文章就介紹到這了,更多相關微信小程式文字長按複製與一鍵複製內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com