关于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)	}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/85143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP Business One:无锡哲讯科技助力中小企业数字化转型的智慧之选

数字化转型&#xff0c;中小企业的必经之路 在当今竞争激烈的商业环境中&#xff0c;数字化转型已不再是大型企业的专利&#xff0c;越来越多的中小企业开始寻求高效、灵活的管理系统来优化业务流程、提升运营效率。作为全球领先的企业管理软件&#xff0c;SAP Business One…

【孙悟空喝水】2022-2-7

缘由C编程问题求解:9634: 孙悟空喝水-编程语言-CSDN问答 void 孙悟空喝水() {//缘由https://ask.csdn.net/questions/7639865?spm1005.2025.3001.5141int x 2&#xff0c; n 0; double s 0, ss 0;std::cin >> n;while ((int)s < n)s 1.0 / x, ss (x - 1.0) / …

OCC笔记:BRepMesh_IncrementalMesh的使用

1. 函数接口 2. 线性偏转与角度偏转 2.1. theLineDeflection&#xff1a;线性偏转 根据文档推导下 isRelative传入Standard_True时&#xff0c;theLineDeflection为相对值。 参看isRelative说明 //! param isRelative if TRUE deflection used for discretization of //! ea…

Visual Studio+SQL Server数据挖掘

这里写自定义目录标题 工具准备安装Visual studio 2017安装SQL Server安装SQL Server Management Studio安装analysis service SSMS连接sql serverVisual studio新建项目数据源数据源视图挖掘结构部署模型设置挖掘预测 部署易错点 工具准备 Visual studio 2017 analysis servi…

如何迁移SOS数据库和修改sos服务的端口号

一. 迁移SOS数据库。 1. 对SOS整个库进行拷贝。压缩拷贝等都可以 2. 找到SOS安装目录下的这个目录 /SOS7/SERVERS7/LOCAL/ 在此目录下会发现&#xff0c;有SOS服务库的文件夹。拷贝你要迁移的SOS数据库 3. 进入该文件夹&#xff0c;找到&#xff1a;serverdb.cfg 打开后&…

Oracle向PG转移建议以及注意点

Oracle向PG转移建议以及注意点 ✅ 一、语法差异与迁移建议 1. 包结构&#xff08;Package&#xff09; Oracle 支持 PACKAGE 和 PACKAGE BODY 分离定义。PostgreSQL 不支持包结构&#xff0c;需将每个函数/过程单独定义。 迁移建议&#xff1a; 将 PACKAGE 包中的每个函数…

PCIe-PCI、PCIe中断机制概述

PCI、PCIe中断概述 PCIe 中断机制在继承 PCI 传统中断&#xff08;INTx&#xff09;的基础上&#xff0c;引入了更高效的 MSI/MSI-X 方案&#xff0c;以提升设备性能并减少 CPU 轮询开销。以下是核心要点及技术演进&#xff1a; ⚙️ ​​一、PCIe 中断类型与演进​​ ​​IN…

改进自己的图片 app

1. 起因&#xff0c; 目的: 前面我写过一个图片 app &#xff0c; 最新做了些改动。 把原来的一列&#xff0c;改为3列&#xff0c; 继续使用瀑布流手机上使用&#xff0c;更流畅&#xff0c;横屏显示为2列。 2. 先看效果 3. 过程: 过程太细碎了&#xff0c;这里只是做一下…

【HTML-15】HTML表单:构建交互式网页的基石

表单是HTML中最强大的功能之一&#xff0c;它允许网页收集用户输入并与服务器进行交互。无论是简单的搜索框、登录页面&#xff0c;还是复杂的多步骤调查问卷&#xff0c;表单都是实现这些功能的核心元素。本文将深入探讨HTML表单的各个方面&#xff0c;帮助您构建高效、用户友…

关于智能体接入后端,在Apifox能够传参数给智能体的测试

from flask import Flask, request, jsonify, render_template import requests import json # 用于解析嵌套的 JSON 字符串app Flask(__name__)COZE_BOT_ID 7508736911423963162 COZE_API_KEY pat_cHXqrFzcvtktfmmlp4pjF3O2qmjioQW46uU8UNbUugyvSlFZclklpunc53DbR8ws COZE…

SQL进阶之旅 Day 8:窗口函数实用技巧

【SQL进阶之旅 Day 8】窗口函数实用技巧 在现代数据库开发中&#xff0c;处理复杂的业务逻辑和大规模数据时&#xff0c;仅仅依靠传统的GROUP BY和JOIN操作已经无法满足需求。**窗口函数&#xff08;Window Function&#xff09;**作为SQL标准的一部分&#xff0c;为开发者提供…

编译rustdesk,使用flutter、hwcodec硬件编解码

目录 安装相应的环境安装visual studio安装vpkg安装rust开发环境安装llvm和clang编译源码下载源码使用Sciter作为UI的(已弃用)使用flutter作为UI的(主流)下载flutter sdk桥接静默安装最近某desk免费的限制越来越多,实在没办法,平时远程控制用的比较多,只能用rustdesk了,…

由反汇编代码确定结构体的完整声明

C程序中遇到下面的代码 typedef struct {int left;a_struct a[CNT];int right; } b_struct;void test( int i, b_struct *bp) {int nbp->leftbp->right;a_struct *ap&bp->a[i];ap->x[ap->idx]n; } 下面是test函数的反汇编代码 结合C程序中的代码与test函数…

鸿蒙OSUniApp复杂表单与动态验证实践:打造高效的移动端表单解决方案#三方框架 #Uniapp

UniApp复杂表单与动态验证实践&#xff1a;打造高效的移动端表单解决方案 引言 在移动应用开发中&#xff0c;表单处理一直是一个既常见又具有挑战性的任务。随着HarmonyOS生态的蓬勃发展&#xff0c;越来越多的开发者开始关注跨平台解决方案。本文将深入探讨如何使用UniApp框…

Python学习(2) ----- Python的数据类型及其集合操作

在 Python 中&#xff0c;一切皆对象&#xff0c;每个对象都有类型。下面是 Python 中的常见内置类型分类和示例&#xff1a; &#x1f7e1; 1. 数字类型&#xff08;Numeric Types&#xff09; 类型说明示例int整数5, -42float浮点数3.14, -0.5complex复数1 2j a 10 …

深入解析Go语言数据类型:从底层到高级应用

引言 Go语言的数据类型系统设计体现了​​简洁性​​与​​高效性​​的完美平衡。作为静态编译型语言&#xff0c;Go提供了丰富的数据类型支持&#xff0c;从基础数值类型到高级并发原语&#xff0c;都经过精心设计。本文将深入剖析Go语言数据类型体系&#xff0c;揭示其底层…

数据交易场景的数据质量评估

在现代数字化时代&#xff0c;数据已成为推动商业发展的核心驱动力。基于不同的交易产品和业务场景&#xff0c;数据产品的质量和准确性直接影响到数据资产的价值及其在市场中的流通性。因此&#xff0c;为数据产品提供全面、深入的数据质量评估报告&#xff0c;不仅有助于提升…

Java 对接 Office 365 邮箱全攻略:OAuth2 认证 + JDK8 兼容 + Spring Boot 集成(2025 版)

&#x1f6a8; 重要通知&#xff1a;微软强制 OAuth2&#xff0c;传统认证已失效&#xff01; 2023 年 10 月起&#xff0c;Office 365 全面禁用用户名 密码认证&#xff0c;Java 开发者必须通过OAuth 2.0实现邮件发送。本文针对 CSDN 技术栈&#xff0c;提供从 Azure AD 配置…

一文详谈Linux中的时间管理和定时器编程

&#xff08;目录&#xff09; 先说一些在计算机中需要用到时间的地方&#xff1a;系统日志log、OS调度(时间片、定时器)等等~~ 时间的计量 计时的方式发展&#xff1a;日晷、沙漏 -> 机械钟 -> 石英振荡器、晶振 -> 铯原子钟 -> 氢原子钟 计算机中的计时方式&…

使用FastAPI+Sqlalchemy从一个数据库向另一个数据库更新数据(sql语句版)

from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker # 配置数据库连接&#xff08;示例为PostgreSQL->MySQL&#xff09; SRC_DB_URL postgresql://user:passsource_host:5432/source_db DST_DB_URL mysqlpymysql://user:passdest_hos…