Table of Contents

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

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.