解决在iOS复制失败问题 iOS/Android通用

本文探讨了安卓与iOS平台在公众号抽奖活动中的优惠券转赠功能实现差异,安卓使用原生方法有效,但在iOS上需借助clipboard.js插件。作者提供了iOS解决方案,包括如何下载并使用该插件,以及注意事项,确保跨平台复制功能的可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

公众号抽奖 优惠券转赠功能 点击后请求转赠码并自动复制到剪切板
目前已验证公众号网页 h5App可用

问题描述:

使用原生方法 在安卓上可用 iOS失效

// 复制
copy(data) {
	let oInput = document.createElement("input");//创建输入框
	oInput.value = data;//赋值
	document.body.appendChild(oInput);//添加到body
	oInput.select(); // 选择对象;
	document.execCommand("Copy"); // 执行浏览器复制命令
	oInput.remove();//移除
},

原因分析:

iOS不支持此解决方案 使用clipboard.js插件

解决方案:

下载 clipboard.js到依赖 博主此时用的yarn 读者也可使用npm

yarn add clipboard

//由于只有一个页面使用 未全局引入 就在使用页面引入在这里插入图片描述

import Clipboard from "clipboard";

HTML部分

<button
	class="copy"
	@click="copyLink()"
>
	复制
</button>

js

copyLink() {
	let clipboard = new Clipboard(".copy", {
		text: () => {
			return this.copy_value;//复制内容
		},
	});
	clipboard.on("success", () => {
		this.close();
		this.$toast.success("复制成功");
	});
	clipboard.on("error", () => {
		this.close();
		this.$toast.success("复制失败");
	});
},

注意事项:

**在调用复制的节点 父级和以上不能有阻止冒泡 会导致复制失效 **

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值