我目前正在使用navigator.clipboard.writeText()将元素中的值复制到剪贴板,但是,它似乎适用于除Safari 中的 iPhone X 和 iPhone 6 Plus 之外的所有设备。
浏览器是最新的,根据 MDN,它们应该可以与这些版本的 safari 配合使用。该代码似乎适用于桌面、Android 和其他 IOS 设备(例如 iPhone 12)。
在 iPhone X 和 6 Plus 上,它会在控制台中的这两个设备上引发 Promise 错误,并且不会复制到剪贴板:
Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'navigator.clipboard.writeText')
有没有人经历过类似的事情并看到/提出了解决方案?谢谢!
代码片段:
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:`));
}
Run Code Online (Sandbox Code Playgroud)