javascript - Problemi s File pluginom u Ionic2


Integriram Quickblox u svoju Ionic2 aplikaciju, za sada sam uspio napraviti sve osim učitavanja datoteke. U Quickbloxu morate učitati datoteku koristeći funkciju koju su oni napravili, a koja prema js dokumentaciji izgleda ovako:

var inputFile = $("input[type=file]")[0].files[0];

var params = {name: inputFile.name, 
     file: inputFile, 
     type: inputFile.type, 
     size: inputFile.size, 
     public: false};

QB.content.createAndUpload(params, function(err, response){
  if (err) {
    console.log(err);
  } else {
    console.log(response);
    var uploadedFile = response;
    var uploadedFileId = response.id;
  }
});

Dakle, preveo sam gornji kod u TypeScript i imam nešto poput ovoga:

uploadFile(filename) {
    File.resolveDirectoryUrl(cordova.file.dataDirectory).then(
        (dirEntry) => {
            File.getFile(dirEntry, filename, { create: false }).then(
                (fileEntry) => {
                    console.log(fileEntry);
                    fileEntry.file((file) => {
                        console.log(file);
                        var params = {
                            name: file['name'],
                            file: file,
                            type: file['type'],
                            size: file['size'],
                            'public': false
                        };
                        quickblox.content.createAndUpload(params,
                            (err, response) => {
                                if (err) {
                                    console.log(err);
                                } else {
                                    console.log(response);
                                    var uploadedFileId = response.id;
                                    var msg = {
                                        type: 'groupchat',
                                        body: "[attachment]",
                                        extension: {
                                            save_to_history: 1,
                                        }
                                    };
                                    msg["extension"]["attachments"] = [{ id: uploadedFileId, type: 'photo' }];
                                    quickblox.chat.send(this.xmpp_room_jid, msg);
                                }
                            });
                    })
                }).catch(
                (err) => {
                    console.log(err);
                }
                );
        }
    );
}

Ovaj rad u smislu "dobivam OK odgovore s Quickblox servera", ali kada odem u administratorsku konzolu Quickblox-a da provjerim preneseni sadržaj, otkrijem da slika koju sam prenio ima 0 bajtova. Dakle, nakon što sam neko vrijeme provjeravao kod, usporedio sam sve svoje pozive funkcija s primjerom aplikacije Quickblox, i jedina razlika koju sam mogao pronaći bila je u File objektu.

Ovo je File objekt koji dobivam u svojoj Ionic 2 aplikaciji:

I ovo je ono što dobivam u quickblox js primjeru:

Sve ostale stvari izgledaju identično osim ovog File objekta. Gotovo sam siguran da je ovo problem koji imam, i budući da sam vrlo početnik u ovom području, nisam uspio pronaći način kako pretvoriti moj File objekt u Ionicu u nešto poput File objekta u js primjeru. Unaprijed zahvaljujem na vašem vremenu i pomoći.

UREDI:

Prilažem zapisnike zahtjeva/odgovora iz moje Ionic aplikacije:

Odgovor #1

Možete li, molim vas, poslati kod koji ste koristili za povezivanje na chat, kreiranje sesije, otvaranje video poziva? Dokumentacija na Quickbloxu je vrlo loša i zapelo mi je pri povezivanju na chat.