#web-share
Вопрос:
Я не уверен, что я здесь делаю не так, я думаю, что для этого API веб-ресурсов должно быть больше документации или лучших описаний ошибок.
Я пытаюсь поделиться следующим файлом
{
lastModified: 1622843015507
lastModifiedDate: Fri Jun 04 2021 16:43:35 GMT-0500 (Eastern Standard Time) {}
name: "60b1d17b7f2cd71c8307fae2"
size: 37835
type: "image/png"
webkitRelativePath: ""
}
с помощью
await navigator.share({
text: 'TEST',
files: [file],
});
Я убедился, что этот тип является разрешенным типом, но я продолжаю получать DOMException: Permission denied
. Я действительно не понимаю, что мне следует искать.
Ответ №1:
Я думаю, что проблема, с которой вы столкнулись, заключается в том, что у вашего имени файла нет расширения. Попробуйте добавить .png
к имени файла, оно должно автоматически работать.
const file = new File(['hello'], 'hello.png', { type: 'image/png' });
await navigator.share({ files: [file] });
Ответ №2:
Я вижу, что вы уже получили некоторые отзывы по вопросу, который вы подняли. Вот конкретный пример, который, надеюсь, поможет вам начать:
if (navigator.canShare amp;amp; navigator.canShare({ files: filesArray })) {
navigator.share({
files: filesArray,
title: 'Vacation Pictures',
text: 'Photos from September 27 to October 14.',
})
.then(() => console.log('Share was successful.'))
.catch((error) => console.log('Sharing failed', error));
} else {
console.log(`Your system doesn't support sharing files.`);
}
Один из способов получения массива файлов (описанный filesArray
выше) — через <input type=files>
элемент. Смотрите официальный пример для этого.