Как поделиться массивом ссылок на файлы изображений или несколькими изображениями через плагин socialsharing в ionic? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь поделиться массивом динамически создаваемых ссылок на файлы изображений с помощью плагина для обмена социальными файлами в ionicv4.Прямо сейчас я тестирую это с WhatsApp.Но это дает мне ошибку TS, которая не может передать arr [] в строке типа.Я понимаю эту ошибку, но мне нужно ее решение.я сделал что-то вроде

this.socialSharing.shareViaWhatsApp(null, imageArr , null);

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

использовать forloop в асинхронном режиме

const imageurls = [arrayofImageLinks];
let array = [];


for (var _i = 0; _i < imageurls.length; _i++) {
    const url = imageurls[_i];

this.http.get(url, {
            responseType: ResponseContentType.Blob
          })
          .toPromise()
          .then(async (res: any) => {
            const imgBlob = new Blob([res._body], {
              type: res.headers.get("Content-Type")
            });

            var reader = new FileReader();
            reader.readAsDataURL(imgBlob);
            reader.onloadend = async () => {
              const base64data = reader.result;
              array.push(base64data);
            };
          })
          .catch(err => {
            console.log(err)
          });

}

this.socialSharing.shareViaWhatsApp("Title", "", array).then(() => {
//do something when done
}).catch(err => {
// Error Occured
console.log(err); 
});
0 голосов
/ 27 февраля 2019

Я думаю, что второй параметр должен быть строкой, а ваша переменная imageArr - массивом.Попробуйте вместо этого передать строку

Можете ли вы попытаться создать такую ​​функцию, как

const ArrayLikeImages = ('yourImage1', 'yourImage2', 'yourImage3') => arguments;

, а затем строку

this.socialSharing.shareViaWhatsApp(null, ArrayLikeImages , null);
...