Table of Contents

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

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.