ご使用のミニアプリでダンプファイルを記録する
本稿では、ミニアプリ内でAR Sessionダンプデータの記録および転送を実装する方法を説明します。
開始前に
- AR Sessionダンプファイルの概念を理解してください。
実装方法
記録の開始/終了を制御するSwitchコンポーネントの使用例と、終了後の微信ネイティブ共有機能の呼び出しを紹介します。
WXMLインターフェースの作成
ミニアプリページにSwitchコンポーネントを追加します。
<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">データを記録</switch>
ページロジック制御
ミニアプリ画面に「データを記録」スイッチが表示され、その状態はdumpSessionFlagにバインドされます。tsコードでは以下を実装:
ar: null,
data: {
//初期状態: オフ
dumpSessionFlag:false,
},
onReady() {
//xr-frameコンポーネントを取得
this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
//スイッチ操作時に表示を更新
this.setData({
"dumpSessionFlag":event.detail.value
});
if (this.ar) {
//xr-frameメソッドを呼び出し
this.ar.dumpSession(event.detail.value);
}
},
コア記録ロジックの実装 (xr-frameコンポーネント内)
session.dumpSession(signal: boolean)インターフェースで制御:
trueを渡す: 記録開始falseを渡す: 記録停止し**一時ファイルパス(tempFilePath)**を返却
記録開始時はwx.showToast()で通知、終了時はwx.shareFileMessage()でファイルを転送。
/**
* Session記録ロジックを処理
* @param signal true=記録開始, false=記録終了&転送
*/
dumpSession(signal: boolean): void {
const recordPath = session.dumpSession(signal);
if (recordPath.length == 0) { // 記録中
wx.showToast({
title: 'データ記録を開始',
icon: 'success',
duration: 2000
});
return;
}
// ファイルパスを処理
wx.shareFileMessage({
filePath: recordPath,
success() {
wx.showToast({
title: '転送成功',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: '転送失敗',
icon: 'error',
duration: 2000
});
}
})
}
注記
ミニアプリのローカルストレージ制限(通常200MB)のため、単回記録は長時間行わず、最大記録時間は10分を超えないでください。