navigator.clipboard.writeText() 不适用于特定的 IOS 设备

时间:2021-01-05 16:22:11

标签: javascript ios promise copy clipboard

我目前正在使用 navigator.clipboard.writeText() 将值从元素复制到剪贴板,但是,它似乎适用于除 iPhone X 和 iPhone 6 Plus 之外的所有设备 Safari 中.

浏览器是最新的,根据 MDN,它们应该可以与这些版本的 safari 一起使用。该代码似乎适用于桌面、Android 和其他 IOS 设备(例如 iPhone 12)。

在 iPhone X 和 6 Plus 上,它在这两个设备的控制台上都会抛出一个 Promise 错误,并且也不会复制到剪贴板:

Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'navigator.clipboard.writeText')

Full error

有没有人遇到过类似的事情并且已经看到/提出了解决方案?谢谢!

代码片段:

   const coupon = couponSelector.value;
    if (notMissing(coupon) && coupon !== '') {
      navigator.clipboard
        .writeText(coupon)
        .then(() =>
          LOGGER.debug({}, `${LOGGER_PREFIX}: Promise Successful.Copied coupon: ${coupon}`),
        )
        .catch((e) => LOGGER.error({ e }, `${LOGGER_PREFIX}: Promise Failed:`));
    }

0 个答案:

没有答案
相关问题