当前位置: 首页 > news >正文

关于ios点击分享自动复制到粘贴板的问题

前言

Android 系统没有什么特别的要求,实现这个也比较容易。但ios在某些情况下就会出现问题。

  1. 如果ios是点击之后,请求接口,再把接口的内容赋值给粘贴板肯定行不通,会被ios系统拦截,导致赋值失败或者赋值为空。
  2. 建议使用第三方库clipboard.js来实现粘贴板赋值
  3. 将点击的dom设置为一个button最好实现。
<!-- 辅助copy的button Android不需要被用户查看 -->
<button id="copy-share" ref="copyBtn" v-show="showBtn">Copy to clipboard
</button>import ClipboardJS from 'clipboard';const copyBtn = ref('')
const showBtn = ref(false)
const handleShareLink = async () => {// 这是一个异步函数const res = await shareLinkGenerate({...})if(res) {copyBtn.value.setAttribute('data-clipboard-text', res); // 并且将这个res的结果,赋值给这个按钮var clipboard = new ClipboardJS('#copy-share'); // 如果请求成功了 让clipboard 和按钮绑定clipboard.on('success', function(e) {  // 成功的回调showSuccessToast('分享链接已复制');e.clearSelection();});clipboard.on('error', function(e) { // 和失败的回调showToast('复制失败');e.clearSelection();});//判断是不是ios系统或者苹果系列if (navigator?.userAgent?.match(/(iPhone|iPod|iPad);?/i)) {// 控制让一个按钮出现,或者弹一个按钮出来,让用户再点击这个按钮一次showBtn.value = truereturn} else {// 如果不是苹果,就可以直接赋值给剪贴板了copyBtn 就是对应的按钮const handleCopy = () => {if(copyBtn.value) {copyBtn.value.click()}}setTimeout(() => {handleCopy()},1000)	}}
}

相关文章:

  • Redis缓存设计与性能优化
  • 容器化革命:告别传统Dockerfile,拥抱现代构建最佳实践
  • JavaScript性能优化实战大纲
  • pikachu靶场通关笔记06 XSS关卡02-反射型POST
  • 用 NGINX 还原真实客户端 IP ngx_mail_realip_module
  • pikachu靶场通关笔记05 XSS关卡01-反射型GET
  • GitHub开源|AI顶会论文中文翻译PDF合集(gpt-translated-pdf-zh)
  • Chrome/ Edge 浏览器弹出窗口隐藏菜单地址栏
  • 解决微信小程序中 Flex 布局下 margin-right 不生效的问题
  • 迁移学习模型构建指南(Python实现)
  • 【C/C++】高性能网络编程之Reactor模型
  • 5.28本日总结
  • 青少年编程与数学 02-020 C#程序设计基础 09课题、面向对象编程
  • IO 中的阻塞、非阻塞、同步、异步及五种IO模型
  • 如何更新和清理 Go 依赖版本
  • flutter使用html_editor_enhanced: ^2.6.0后,编辑框无法获取焦点,无法操作
  • 4.8.4 利用Spark SQL实现分组排行榜
  • 2021年认证杯SPSSPRO杯数学建模D题(第二阶段)停车的策略全过程文档及程序
  • 手机如何压缩文件为 RAR 格式:详细教程与工具推荐
  • python:selenium爬取网站信息
  • 电商总监带你做网站策划/培训体系搭建
  • 沈阳微网站建设/电商网站模板
  • 服务器网站绑定域名/关键词排名优化价格
  • 国外黄色网站推荐/自己怎样在百度上做推广
  • 广州app开发公司排行十强/seo网站推广是什么意思
  • b2b外贸网站有哪些/b2b关键词排名工具