Отказано в разрешении на общий доступ к файлам API веб-ресурса

#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> элемент. Смотрите официальный пример для этого.