微信小程序 Mega 插件已知問題與限制
這篇文章介紹了 Mega 小程序插件在使用過程中的已知問題和限制。
微信已知問題
當前微信 xr-frame 或 VisionKit 已確認的缺陷。發生時將導致 AR 功能失效,請在開發時留意相關觸發場景。
微信平面檢測異常
在特定情況下(如畫面中出現大片白牆、相機長時間被遮擋等),微信提供的平面檢測可能出現狀態異常。在這種狀態下,MegaTracker 無法正常工作。
處理方法參考 平面 AR 追蹤器異常處理。
Session 初始化時間較長
AR Session 需要等待微信平面檢測初始化完成後才能完成初始化。在某些情況下,微信平面檢測初始化時間較長。
AR Session 需要等待 xr-frame ARTracker 初始化完成的原因 請見 MegaTracker 是如何在 xr-frame 上工作的。
- 狀態參考:微信小程序 AR 追蹤器狀態文件。
- 監聽示例:
<xr-ar-tracker id="xrARTracker" mode="Plane" bind:ar-tracker-state="handleARTrackerState"></xr-ar-tracker>
handleARTrackerState({detail}) {
if (detail.value.state == xrFrameSystem.EARTrackerState.Detected) {
console.log('Plane is now detected by XR-Frame ARTracker.');
}
}
節點的 worldPosition 在當前幀不會被立刻更新
這個例子中 trs.worldPosition 未被及時更新:
public onTick(delta, data) {
const trs = this.el.getComponent(xrFrameSystem.Transform);
// 更新前該節點的 WorldPosition
console.log(`World Position before update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
// 更新前該節點的 LocalPosition
console.log(`Local Position before update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
trs.position.x += 0.1;
trs.position.y += 0.1;
trs.position.z += 0.1;
// 該節點的 WorldPosition 未被更新
console.log(`World Position after update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
// 該節點的 LocalPosition 被更新
console.log(`Local Position after update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
}
在開發中建議一直使用 LocalTransform , 即 el.getComponent(xrFrameSystem.Transform).position 和 el.getComponent(xrFrameSystem.Transform).rotation。
屏幕方向切換異常
在微信小程序全局配置 app.json 中的 window 若填入 "auto"。
設備以橫屏模式離開小程序後,若以豎屏模式重新進入,會出現 AR 畫面異常的情況。
因此任何時候不要在 AR 小程序應用中使用 "auto"。
使用限制
功能運行的硬性要求。未滿足時功能不可用,但可通過調整配置或環境予以避免。
機型限制
運行 Mega 小程序插件的設備需要至少支援 微信 VisionKit V1 平面接口。為獲得理想效果,建議使用支援 微信 VisionKit V2 平面接口 的設備。
支援機型列表:參考 V2 平面 AR 接口支援列表。
快速判斷方法:
- 掃描微信小程序官方 Sample 二維碼。

- 進入小程序後,導航至 接口 > VisionKit 視覺能力 > 水平面 AR-v2,即可快速判斷當前設備是否支援。
- 掃描微信小程序官方 Sample 二維碼。
如果需要在不相容 VisionKit 的設備上使用 Mega 服務,請參考導航場景最佳實踐 使用支援幾乎所有設備的視+ AR 導航產品。
PlaneMode 強制配置
受部分微信接口支援限制,planeMode 必須設置為 1 。
<xr-scene ar-system="modes:Plane; planeMode: 1" bind:ready="handleReady">
GPS 功能限制
暫不支援通過 GPS 對齊 Block。
暫不支援通過 GPS 擺放標註數據。