javascript - Problem med File-plugin i Ionic2
Jag integrerar Quickblox i min Ionic2-app, för tillfället har jag kunnat göra allt utom att ladda upp en fil. I Quickblox måste man ladda upp en fil med en funktion som de har gjort och som enligt js-dokumentationen ser ut så här:
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;
}
});
Så jag översatte koden ovan till TypeScript och jag har något som detta:
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);
}
);
}
);
}
Detta fungerar i termer av "Jag får okej svar från Quickblox-servern", men när jag går till Quickblox admin-konsol för att kontrollera det uppladdade innehållet ser jag att bilden jag laddade upp har 0 bytes. Så efter att ha kontrollerat koden ett tag jämförde jag sida vid sida alla mina funktionsanrop med Quickblox exempelapp och den enda skillnaden jag kunde hitta var i File-objektet.
Det här är File-objektet jag får i min Ionic 2-app:
Och detta är den jag får i QuickBlox JS-exemplet:
Alla de andra sakerna ser identiska ut förutom detta File-objekt. Jag är nästan säker på att detta är problemet jag har, och eftersom jag är väldigt nybörjare på detta område, kunde jag inte hitta ett sätt att kasta från mitt File-objekt i Ionic till något som File-objektet i js-exemplet. Tack på förhand för all er tid och hjälp.
REDIGERA:
Jag bifogar förfrågnings-/svarsloggarna från min Ionic-app:
Svar #1
Kan du snälla posta koden du använde för att ansluta till chatten, skapa en session, öppna ett videosamtal? Dokumentationen för Quickblox är mycket dålig och jag fastnade vid att ansluta till chatten.







