@Davidaa_WoW

Как быть с ошибкой the Clipboard API has been blocked because of a permissions policy applied to the current document?

Разрабатываю компонент для одной noCode платформы, компоненты пишутся на React, или React native. Задача очень простая - копировать входящий текст пользователю в буфер обмена, да вот только возникают проблемы с ней. При нажатии на кнопку возникает следующая ошибка: Uncaught (in promise) DOMException: The Clipboard API has been blocked because of a permissions policy applied to the current document.
Везде, где я её гуглил речь идёт про IFrame-ы всякие, а у меня в коде IFrame-ов и в помине нет. Вот собственно код:
import React, { Component } from 'react'
import { Text, View, StyleSheet, Button } from 'react-native'

class SimpleCopyButton extends Component {

	submitAction = async () => {
		let { input } = this.props

		navigator.clipboard.writeText(input);
	  }

	render() {
		const { input,text } = this.props

		return (
			<View style={styles.wrapper} allow="clipboard-write">
				<Button
					onPress = {input && this.submitAction}
					allow="clipboard-write"
				/>
			</View>
		)
	}
}

const styles = StyleSheet.create({
	wrapper: {
		display: 'flex',
		alignItems: 'center',
		justifyContent: 'center',
	}
})

export default SimpleCopyButton


Причём что интересно, так это если я строчку из функции не привязываю к нажатию кнопки, а просто вставляю в код, то проблем никаких не возникает и текст копируется.
В чем проблема?
  • Вопрос задан
  • 1610 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Clipboard API доступна только на https-страницах. Разрешение clipboard-write на запись в буфер автоматически выдаётся странице на активном табе браузера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы