mui 点击长按复制文本

<style>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-user-select: auto;
outline: 0;
-webkit-tap-highlight-color: transparent;
-webkit-tap-highlight-color: transparent;
}

</style>

 

 

单独写到了一个 js 文件。首先把 长按事件 激活,因为默认是关闭的。我在里边添加了确认框,可以做到提醒用户的作用。在复制成功后边又有消息提醒。代码如下

  1.  
    // 激活长按按钮
  2.  
    mui.init({
  3.  
    gestureConfig: {
  4.  
    longtap: true, //默认为false
  5.  
    }
  6.  
    });
  7.  
     
  8.  
    // 使用mui的长按事件 我把我的复制元素 class 设置为copy-text
  9.  
    mui('body').on('longtap', '.copy-text', function () {
  10.  
    // 每次触发事件就会使用 innerText 获取纯文本。
  11.  
    var copy_content = this.innerText;
  12.  
    // 加了一个确认框 让用户选择是否复制
  13.  
    mui.confirm('您要复制内容吗?', '小禾CRM', ['取消', '复制内容'], function (e) {
  14.  
    if (e.index == 1) {
  15.  
    //判断是安卓还是ios
  16.  
    if (mui.os.ios) {
  17.  
    // ios 的方法 这个我没具体研究过 直接拿来用了
  18.  
    var UIPasteboard = plus.ios.importClass("UIPasteboard");
  19.  
    var generalPasteboard = UIPasteboard.generalPasteboard();
  20.  
    //设置 复制的内容也就是 触发事件 innerText 获取的内容
  21.  
    generalPasteboard.plusCallMethod({
  22.  
    setValue: copy_content,
  23.  
    forPasteboardType: "public.utf8-plain-text"
  24.  
    });
  25.  
    generalPasteboard.plusCallMethod({
  26.  
    valueForPasteboardType: "public.utf8-plain-text"
  27.  
    });
  28.  
    // 在上边都走完 给用户一个提示
  29.  
    mui.toast('复制成功')
  30.  
    } else {
  31.  
    //安卓 的方法 这个我没具体研究过 直接拿来用了
  32.  
    var context = plus.android.importClass("android.content.Context");
  33.  
    var main = plus.android.runtimeMainActivity();
  34.  
    var clip = main.getSystemService(context.CLIPBOARD_SERVICE);
  35.  
    plus.android.invoke(clip, "setText", copy_content);
  36.  
    // 在上边都走完 给用户一个提示
  37.  
    mui.toast('复制成功')
  38.  
    }
  39.  
    }
  40.  
    })
  41.  
    })
  42.  
    复制代码
posted @ 2020-04-23 10:50  老榕树  阅读(669)  评论(0编辑  收藏  举报