Загрузите созданный Blob с Ionic 3 на устройство Android - PullRequest
0 голосов
/ 26 апреля 2018

Я недавно столкнулся с этой проблемой при использовании Ionic3 для разработки приложения на телефоне Android. У меня есть столбцы и строки данных, которые я извлек в 2D-массив. После чего я создаю CSV-блоб из 2D-массива, используя papaparse.

let csv = papa.unparse({
  fields: this.headerRow,
  data: this.csvData
});

var blob = new Blob([csv]);
var a = window.document.createElement("a");
a.href = window.URL.createObjectURL(blob);
a.download = "confidentialData.csv";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);

Приведенный выше код работает только для загрузки из браузера, когда я загружаю его в свой телефон Android, он не загружается вообще. Я прочитал много других сообщений о том, как приложение Ionic загружает файл на устройство, используя FileTransfer и File. Но я, кажется, не могу обойти это, потому что FileTransfer.download требует источник URL для загрузки файла в устройство.

Но в моем случае файл нигде не размещается, и большой двоичный объект генерируется динамически из моего кода. Буду признателен за любую помощь или рекомендацию о том, как я могу загрузить мой CSV-блоб в мое устройство Android с помощью Ionic 3. Большое спасибо.

1 Ответ

0 голосов
/ 26 апреля 2018

Вы ошибаетесь. FileTransfer работает как загрузка или загрузка с URL-адреса (например, загрузка изображения на сервер с вашего устройства или загрузка изображения с сервера на ваше устройство).

Вам нужно посмотреть Cordova File и использовать функции createFile и writeFile для сохранения данных на устройстве.

РЕДАКТИРОВАТЬ: Чтобы сохранить файл в папке «Документы» или «Загрузки», вам нужно будет использовать cordova.file.externalRootDirectory + '/Download/' для его работы, также имейте в виду, что многие папки только для чтения (dataDirectory на iOS например)

Надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...