Я загружаю img, превращаю его в файл, а затем пытаюсь поделиться этим файлом. Я протестировал код на последнем Chrome на Android (единственный браузер, который в настоящее время поддерживает этот API).
if (shareimg && navigator.canShare) {
share = async function() {
const response = await fetch(shareimg);
const blob = await response.blob();
const file = await new File([blob], "image.jpeg");
navigator.share({
url: shareurl,
title: sharetitle,
text: sharetext,
files: [file]
});
};
}
Я запускаю функцию в ответ на нажатие пользователем кнопки (метод share () должен вызываться из пользовательского жеста, иначе он не будет работать).
(я тестирую этот код с помощью Browserstack, который предоставляет консоль для ошибок javascript, поскольку я не смог успешно связать свое устройство Android с моим Mac для отладки, и этот API работает только на мобильных телефонах - не на Chromeдля рабочего стола.)