Usare il proprio mini program per registrare file dump
Questo articolo descrive come implementare la registrazione e l'inoltro dei dati AR Session dump in un mini program.
Prima di iniziare
- Comprendere che cos'è un file AR Session dump.
Metodo di implementazione
Usare un componente Switch come esempio per controllare l'inizio e la fine della registrazione, quindi chiamare la funzione di condivisione nativa WeChat dopo la fine della registrazione.
Scrivere l'interfaccia WXML
Aggiungere alla pagina del mini program un componente form Switch, usato per controllare l'avvio della registrazione, la fine e l'inoltro della registrazione.
<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">记录数据</switch>
Controllo logica pagina
In questo esempio, nell'interfaccia WeChat Mini Program comparirà uno switch chiamato "Record data". Il suo stato è associato a dumpSessionFlag nel mini program, ed è associato alla funzione di callback dumpSessionChange nel mini program. Nel codice ts del mini program è necessario implementare:
ar: null,
data: {
//lo stato iniziale del componente modulo e chiuso
dumpSessionFlag:false,
},
onReady() {
//ottieni il componente xr-frame nella scena
this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
//quando il pulsante viene attivato, alterna la visualizzazione del componente modulo
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 principale di registrazione (nel componente xr-frame)
Controllare il processo di registrazione chiamando l'interfaccia session.dumpSession(signal: boolean):
- Passare
true: avvia la registrazione. - Passare
false: interrompe la registrazione e restituisce il percorso temporaneo del file (tempFilePath) generato.
All'avvio della registrazione, è possibile mostrare un prompt di inizio registrazione tramite wx.showToast(). Al termine della registrazione, usare wx.shareFileMessage() per inoltrare il file registrato tramite chat WeChat.
/**
* gestisce la logica di registrazione di Session
* @param signal true avvia la registrazione, false la termina e la inoltra
*/
dumpSession(signal: boolean): void {
// chiama l interfaccia per ottenere il percorso
const recordPath = session.dumpSession(signal);
// quando signal e true, l interfaccia restituisce una stringa vuota per indicare che la registrazione e in corso
if (recordPath.length == 0) {
wx.showToast({
title: '开始记录数据',
icon: 'success',
duration: 2000
});
return;
}
// quando signal e false, elabora il percorso del file restituito
wx.shareFileMessage({
filePath: recordPath,
success() {
wx.showToast({
title: '记录转发成功',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: '记录转发失败',
icon: 'error',
duration: 2000
});
}
})
}
Nota
A causa del limite di spazio locale dei mini program, solitamente 200 MB, si consiglia che una singola registrazione non sia troppo lunga, e la durata massima di registrazione non deve superare 10 minuti.