NativeScript / NativeScript/plugins

[@nativescript/background-http] Error on uploading files

Aperta
#283 5 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
TypeScript
Stelle
206
Fork
123
Merge medio
2g 1h
PR unite (30g)
1

Descrizione

Hello, after updating to newest NativeScript version, we're experiencing issues with file upload. It worked previously with NativeScript 6.

Packages:

"@nativescript/core": "^8.2.2",
"@nativescript/angular": "^13.0.3",
"@nativescript/background-http": "^6.0.0"

Upload config:

const request: Request = {
                url: this._getUrl(fileToUpload.addImageResponse),
                method: "PUT",
                headers: {
                    "Content-Type": "application/x-www-form-urlencoded",
                    "x-ms-blob-content-type": "image/jpeg",
                    "x-ms-blob-type": "BlockBlob"
                },
                description: "Uploading " + fileToUpload.fileName,
                androidAutoClearNotification: true,
                androidAutoDeleteAfterUpload: true
};

const task = this.session.uploadFile(fileToUpload.nativeFile.path, request);

task.on("progress", (e) => this._progressHandler(e as ProgressEventData, fileToUpload));
task.on("error", (e) => this._errorHandler(e as ErrorEventData, fileToUpload));
task.on("responded", this._respondedHandler);
task.on("complete", () => this._completeHandler(fileToUpload));
task.on("cancelled", this._cancelledHandler); // Android only

When executing, we're getting following error:

JS: ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'NotificationConfig' of undefined
JS: TypeError: Cannot read property 'NotificationConfig' of undefined
JS:     at setRequestOptions (file: src/webpack:/.../node_modules/@nativescript/background-http/index.android.js:247:0)
JS:     at getBinaryRequest (file: src/webpack:/.../node_modules/@nativescript/background-http/index.android.js:221:0)
JS:     at Function.create (file: src/webpack:/.../node_modules/@nativescript/background-http/index.android.js:152:0)
JS:     at Session.uploadFile (file: src/webpack:/.../node_modules/@nativescript/background-http/index.android.js:139:0)
JS:     at UploadService._uploadToCloud (file: src/webpack:/.../src/app/sl/services/upload/upload.service.ts:251:0)
JS:     at UploadService._checkAndUploadNextFile (file: src/webpack:/.../src/app/sl/services/upload/upload.service.ts:108:0)
JS:     at UploadService._checkAndPrepareNextFile (file: src/webpack:/.../src/app/sl/services/upload/upload.service.ts:97:0)
JS:     at file: src/webpack:/.../src/app/sl/services/upload/upload.service.ts:184:0
JS:     at _ZoneDelegate.in...

Tested on multiple Android devices with android versions from 10 to 12. Not sure if iOS has the same error. Any suggestions?

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dallo stack trace in node_modules/@nativescript/background-http/index.android.js, in particolare da setRequestOptions alla riga 247, quindi esamina la chiamata di upload in src/app/sl/services/upload/upload.service.ts intorno alle righe 97, 108 e 251. Riproduci il problema con le versioni dei pacchetti e la configurazione di upload fornite su Android; il lavoro è completato quando la causa è stata identificata e il caricamento del file non genera più l’errore NotificationConfig.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
android, typescript
Ambito
mobile
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.