Запись в буфер в мобильных версиях Telegram bot API

Есть webapp для телеграмм бота, в нём есть кнопка, которая копирует изображение в буфер, реализовано вот так:

axios.post(`${process.env.REACT_APP_SERVER_HOST}/photo`,
  {
    url: element.src,
  },
  {
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    responseType: "blob",
  }
)
 .then((res) => {
    navigator.clipboard.write([ 
      new ClipboardItem({
        [res.data.type]: res.data,
      }),
    ])
      .then(() => console.log("copied"))
      .catch((err) => {
        setCopyErrorValue(String(err));
        setCopyError(true);
      });
      })
  .catch((err) => {
    setCopyErrorValue(String(err));
    setCopyError(true);
  });

В этом коде я отправляю на сервер запрос с URI изображения, а в ответ приходит blob, который использую для копирования в буфер.

В десктопной версии телеграмм, при открытии приложения в боте всё работает как надо, изображение копируется в буфер. Ошибки появляются в мобильных версиях, причём разные для разных платформ:

  • Для Android: notAllowedError: write permission denied.
  • Для iOS: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.

Думал что дело в мобильных устройствах впринципе, но в мобильных версиях браузеров (всех, кроме firefox, в нём и на десктопной версии не поддерживает эту функцию) всё работает хорошо.

Пожалуйста, подскажите как решить проблему с доступом к буферу из мобильных версий telegram bot api webapp.


Ответы (0 шт):