复制功能

手机自带的浏览器都不支持navigator.clipboard和document.execCommand方法,该怎么实现复制功能呢,各位大佬有没有什么建议

实测手机上,Safari, Edge 都支持 clipboard, 需要 https 才行

这些主流浏览器我试了都可以,但是有一些手机自带的,比如小米自带的浏览器就不行

是 navigator 下没有 clipboard 对象,还是有这个对象,调用不生效?

有这个对象,然后writeText方法不生效

有没有可能是小米浏览器没开写入剪贴板权限

我刚刚试了,小米的浏览器开了权限是会有个提示,像有些模拟器的好像也不行

let projectUrl = “…”;
if(navigator.clipboard) {
navigator.clipboard.writeText(projectUrl).then(()=>{
//成功
}).catch(()=>{})
} else {
var textarea = document.createElement(‘textarea’);
textarea.style.position = ‘fixed’;
textarea.style.opacity = 0;
textarea.value = projectUrl;
document.body.appendChild(textarea);
textarea.select();
document.execCommand(‘copy’);
document.body.removeChild(textarea);
}

navigator.clipboard.writeText

document.execCommand(‘copy’)

这两个方法都不行该咋办呢

都不支持 就不显示复制咯

浏览器本来就不是都支持的,看支持率还是有少部分不支持的,"navigator.clipboard," | Can I use... Support tables for HTML5, CSS3, etc
想要能复制,几点条件都要满足
部署在https环境,浏览器支持,并且用户给复制权限,缺一不可,这又不是你能确定的,不能复制提示复制失败呗