Utilizzare la tua mini-app per registrare file dump
Questo articolo spiega come implementare la registrazione e l'inoltro dei dati di dump della sessione AR nella tua mini-app.
Prima di iniziare
- Comprendi cos'è un file di dump della sessione AR.
Metodo di implementazione
Prendiamo come esempio l'utilizzo di un componente Switch per controllare l'inizio e la fine della registrazione, richiamando la funzionalità di condivisione nativa di WeChat al termine.
Scrivere l'interfaccia WXML
Aggiungi un componente Switch alla pagina della mini-app per controllare l'inizio e la fine della registrazione.
<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">Registra dati</switch>
Controllo della logica della pagina
In questo esempio, apparirà nella mini-app un interruttore etichettato "Registra dati". Il suo stato è legato alla variabile dumpSessionFlag e alla funzione di callback dumpSessionChange. Nel codice TypeScript della mini-app è necessario implementare:
ar: null,
data: {
//lo stato iniziale del componente del form è spento
dumpSessionFlag:false,
},
onReady() {
//ottieni il componente xr-frame nella scena
this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
//cambia la visualizzazione del componente quando viene attivato
this.setData({
"dumpSessionFlag":event.detail.value
});
if (this.ar) {
//chiama il metodo fornito dal componente xr-frame
this.ar.dumpSession(event.detail.value);
}
},
Implementare la logica di registrazione principale (all'interno del componente xr-frame)
Controlla il flusso di registrazione chiamando l'interfaccia session.dumpSession(signal: boolean):
- Passa
true: avvia la registrazione. - Passa
false: interrompe la registrazione e restituisce il percorso temporaneo del file (tempFilePath).
All'inizio della registrazione, puoi usare wx.showToast() per segnalare l'avvio. Al termine, usa wx.shareFileMessage() per inoltrare il file registrato tramite la chat di WeChat.
/**
* Gestisce la logica di registrazione della sessione
* @param signal true per iniziare la registrazione, false per terminare e inoltrare
*/
dumpSession(signal: boolean): void {
// Chiama l'interfaccia per ottenere il percorso
const recordPath = session.dumpSession(signal);
// Quando signal è true, l'interfaccia restituisce una stringa vuota, indicando la registrazione in corso
if (recordPath.length == 0) {
wx.showToast({
title: 'Registrazione dati iniziata',
icon: 'success',
duration: 2000
});
return;
}
// Quando signal è false, elabora il percorso del file restituito
wx.shareFileMessage({
filePath: recordPath,
success() {
wx.showToast({
title: 'Registrazione inoltrata con successo',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: 'Invio registrazione fallito',
icon: 'error',
duration: 2000
});
}
})
}
Nota
A causa dei limiti dello spazio locale delle mini-app (solitamente 200MB), si consiglia di non registrare per periodi troppo lunghi. La durata massima della registrazione non può superare i 10 minuti.