uni-app uni.setClipboardData在iOS手机浏览器中无法使用

uni-app uni.setClipboardData在iOS手机浏览器中无法使用

开发环境 版本号 项目创建方式
Mac 13.4.1 HBuilderX
产品分类:uniapp/H5

浏览器平台:微信内置浏览器
浏览器版本:微信8.0.41

App下载地址或H5网址:[https://h5.sass.romawaysz.com/pages/circle/index?teacher_code=6303883550](https://h5.sass.romawaysz.com/pages/circle/index?teacher_code=6303883550)

### bug描述:
uni.setClipboardData 在iOS手机 微信浏览器和Safari浏览器都报错,APP上正常

### 示例代码:

uni.setClipboardData({data: ‘分享链接…’})

### 操作步骤:

uni.setClipboardData({data: ‘分享链接…’})

### 预期结果:

uni.setClipboardData({data: ‘分享链接…’})

### 实际结果:

uni.setClipboardData({data: ‘分享链接…’})


更多关于uni-app uni.setClipboardData在iOS手机浏览器中无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

页面点击分享按钮,弹窗中点击复制链接

更多关于uni-app uni.setClipboardData在iOS手机浏览器中无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


mac电脑上Safari也不行

data 是字符串类型,,获取验证码读秒,有点小问题 data String 是 需要设置的内容

@栉风 麻烦问一下,这个问题解决了嘛。也遇到了这个问题,在IOS设备上不行

这是由于iOS浏览器安全限制导致的常见问题。在iOS的微信浏览器和Safari中,出于安全考虑,JavaScript无法直接访问剪贴板,必须通过用户手势触发。

解决方案:

  1. 确保复制操作是由用户直接触发的(如click事件)
  2. 使用兼容性写法:
document.addEventListener('click', () => {
  uni.setClipboardData({
    data: '分享链接...',
    success: () => {
      uni.showToast({title: '复制成功'})
    },
    fail: (err) => {
      console.log('复制失败', err)
    }
  })
})
回到顶部