vue在移动端实现复制数值到剪贴版

实现按键就指定内容复制到设备的剪贴版,这里是复制快递单号

html

<div slot="footer" v-if="express.number" style="padding: 20px 0">
          <span style="float: left;line-height: 30px">物流信息:{{express.company}}|{{express.number}}</span>
          <span class="req-feedback">
            <van-button class="bt-check bt-bright" @click="copyNumber">
             复制快递单号
          </van-button>
          </span>
        </div>

js

import {handleClipboard} from ‘../../assets/js/clipboard‘ copyNumber () { // 物流单号复制
      handleClipboard(this.express.number, event, () => {
        alert(‘单号已经复制在剪贴版‘)
      }, () => {
        alert(‘单号复制失败!‘)
      })
    },

安装依赖:

"clipboard": "^2.0.4",

封装好的clipboard.js  放在了assets/js/clipboard.js

import Vue from ‘vue‘
import Clipboard from ‘clipboard‘

function clipboardSuccess () {
  Vue.prototype.$message({
    message: ‘复制成功‘,
    type: ‘success‘,
    duration: 1500
  })
}

function clipboardError () {
  Vue.prototype.$message({
    message: ‘复制失败‘,
    type: ‘error‘
  })
}

export function handleClipboard (text, event, onSuccess, onError) {
  event = event || {}
  const clipboard = new Clipboard(event.target, {
    text: () => text
  })
  clipboard.on(‘success‘, () => {
    onSuccess ? onSuccess() : clipboardSuccess()
    clipboard.off(‘error‘)
    clipboard.off(‘success‘)
    clipboard.destroy()
  })
  clipboard.on(‘error‘, () => {
    onError ? onError() : clipboardError()
    clipboard.off(‘error‘)
    clipboard.off(‘success‘)
    clipboard.destroy()
  })
  clipboard.onClick(event)
}

原文地址:https://www.cnblogs.com/wayneliu007/p/10682742.html

时间: 2024-10-14 04:58:21

vue在移动端实现复制数值到剪贴版的相关文章

自动复制文本到剪贴版(Auto Copy to clipboard)

插件介绍: 自动将鼠标选中文本复制到剪贴板,该插件有复制为纯文本的选项,包括在复制文本的URL等特色功能, 这对于开发者来说是非常实用的功能,对于经常需要切换不同软件之间的开发来说是一大利器, 使用说明: 只在浏览器中选中的文本将自动复制到剪贴版,这将大大简化很多工作. 功能介绍: - 启用/禁用文本字段自动拷贝(V1.0.0)- 启用/禁用复制为纯文本(V1.0.2)- 启用/禁用包括与复制的文本(V1.0.2)网址 - 增加了对中间点击功能粘贴.请参见扩展选项启用(V2.0.0) - 增加了

追求极致的用户体验ssr(基于vue的服务端渲染)

首先这篇博客并不是ssr建议教程,需要ssr入门的我建议也不要搜索博客了,因为官网给出了详细的入门步骤,只需要step by step就可以了,这篇博客的意义是如何使用ssr,可能不同的人有不同的意见,我舍弃了ssr中的vuex和vue-router增加了redis,serverfetch等等实现了适合自己公司的业务,个人认为并不是所有的东西都值得吸收,对我来说我能用到的只是ssr将vue生成一个html和对应的js. 虾面我们来看看什么是服务端渲染? 官网给出的解释: Vue.js 是构建客户

如何搭建一个基于 Egg + Webpack + Vue 的服务端渲染工程项目呢?

如何搭建一个基于 Egg + Webpack + Vue 的服务端渲染工程项目呢? 项目你可以通过 easywebpack-cli 直接初始化即可完成或者clone egg-vue-webpack-boilerplate.下面说明一下从零如何搭建一个Egg + Webpack + Vue 的服务端渲染工程项目. 通过 egg-init 初始化 egg 项目 egg-init egg-vue-ssr // choose Simple egg app 安装 easywebpack-vue 和 egg

Vue在移动端App中使用的问题总结

1.客户端中弹出键盘使得fixed布局错乱 Vue 在移动端中使用,当弹出键盘时,fixed 布局的元素可能会被键盘顶起. 例子图示及解决方法参考:https://blog.csdn.net/qq_31929931/article/details/92838497 2.Vue 中使用 BScroll 在 Vue 中使用 BScroll,控制 bscroll 的隐藏显示必须用v-show,不能用v-if,否则会报错. 原文地址:https://www.cnblogs.com/wenxuehai/p

基于vue-cli3的vue项目移动端样式适配,lib-flexible和postcss-px2rem

1,安装 flexible和 postcss-px2rem(命令行安装) npm install lib-flexible --save npm install postcss-px2rem --save 简要介绍这两个包的用途: flexible会为页面根据屏幕自动添加<meta name='viewport' >标签,动态控制initial-scale,maximum-scale,minimum-scale等属性的值. 例如在Galaxy S III: 例如在iphone6/7/8: po

移动端实现复制到剪贴板

实现复制到剪贴板,用js来实现这个功能,开始的时候只搜索到一个用jquery插件zclip实现的方法,但是这个方法要用的flash,移动端浏览器基本都不支持flash,所以要在移动端实现用这个方法就不灵了. 最后找到了一个可以实现的方法还比较简单,代码如下: function Copy(str){ var save = function(e){ e.clipboardData.setData('text/plain', str); e.preventDefault(); } document.a

vue.js移动端app实战1

本系列将会用vue.js2制作一个移动端的webapp单页面,页面不多,大概在7,8个左右,不过麻雀虽小,五脏俱全,常用的效果如轮播图,下拉刷新,上拉加载,图片懒加载都会用到.css方面也会有一些描述,像不同分辨率的适配,flex布局以及scss来编写mixin来处理2x,3x图等. 初始工作: 通过vue-cli安装webpack模板后,会自动生成一大堆文件,通常我们只关心src/目录下的东西.个人习惯在src下新建一个base目录,用来存放通用的css及js,比如样式重置css,一切js工具

JS案例 - 基于vue的移动端长按手势

================================惯例碎碎念前言================================ 当时首先想到要做长按事件的时候,我想到的是vue内部的自定义指令,毕竟官网里边有这么一句描述: 有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令. 但是项目用在app中,因为另一个未知原因的bug,自定义事件躺枪(至今死不瞑目).长按事件被我改成了在初始化时,就直接绑定到需要他的dom上. ================

[vue]模拟移动端三级路由

页面逻辑 实现代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模拟移动端三级路由</title> </head> <body> <div id="app"> </div> <template id="app01&qu