WebShare Api обмениваться файлами? - PullRequest
0 голосов
/ 06 января 2020

Hy Я хочу поделиться изображениями с новым API. Если у меня есть форма для загрузки файла, я могу поделиться этим файлом с API, я ломаю голову, пытаясь поделиться локальным файлом. Вот моя попытка:

function sharePage(){
const title     = document.title;
var filesArray  = [];
$.get(baseurl+"images/cover.jpg", { async: false }, function(data) { filesArray.push(data); });
setHashtag('share');
if(navigator.share){
    if(navigator.canShare && navigator.canShare({ files: filesArray })) {
        navigator.share({
            text: 'FILE',
            files: filesArray,
            title: title,
            url: baseurl
        });
    }else{
        navigator.share({
            text: 'NO FILE',
            title: title,
            url: baseurl
        });
    }
}else{
    document.location.href="whatsapp://send?text="+baseurl;
}

РЕДАКТИРОВАТЬ: Проблема в том, что я не знаю, чтобы реализовать серверный файл для этого сценария что-то вроде var file = baseurl + "images / cover.jpg"; Я пытался с jquery $ .get, но он не работает

1 Ответ

0 голосов
/ 18 апреля 2020

Я работаю, запросив BLOB-объект и сгенерировав объект File. Примерно так:

fetch("url_to_the_file")
  .then(function(response) {
    return response.blob()
  })
  .then(function(blob) {

    var file = new File([blob], "picture.jpg", {type: 'image/jpeg'});
    var filesArray = [file];

    if(navigator.canShare && navigator.canShare({ files: filesArray })) {
      navigator.share({
        text: 'some_text',
        files: filesArray,
        title: 'some_title',
        url: 'some_url'
      });
    }
  }
...