diff --git a/Demo/API_V2/Assets/API/OpenInterface/OpenInterfaceSO.asset b/Demo/API_V2/Assets/API/OpenInterface/OpenInterfaceSO.asset
index c27f57b5..1d93d3af 100644
--- a/Demo/API_V2/Assets/API/OpenInterface/OpenInterfaceSO.asset
+++ b/Demo/API_V2/Assets/API/OpenInterface/OpenInterfaceSO.asset
@@ -18,6 +18,7 @@ MonoBehaviour:
   entryList:
   - {fileID: 11400000, guid: d0c8de90644082f418ae2ec91900bd8f, type: 2}
   - {fileID: 11400000, guid: 8a4f679875fb6413b9b0df39d1359e57, type: 2}
+  - {fileID: 11400000, guid: ed11eef37ea280c4abb753f670af92f4, type: 2}
   - {fileID: 11400000, guid: 2957939a29ac24a2e9ca1d4f6ccdb41e, type: 2}
   - {fileID: 11400000, guid: 2c8c997508e96423fa1031b948386d44, type: 2}
   - {fileID: 11400000, guid: 07a53d3481bd54766a5468694e9f8d1b, type: 2}
diff --git a/Demo/API_V2/Assets/API/OpenInterface/PageManager.meta b/Demo/API_V2/Assets/API/OpenInterface/PageManager.meta
new file mode 100644
index 00000000..d09a1058
--- /dev/null
+++ b/Demo/API_V2/Assets/API/OpenInterface/PageManager.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e64adf9fe4065224cbb85041de19f97b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManager.cs b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManager.cs
new file mode 100644
index 00000000..24abc3ac
--- /dev/null
+++ b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManager.cs
@@ -0,0 +1,133 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using WeChatWASM;
+
+public class PageManager : Details
+{
+    private WXPageManager recommendPageManager;
+    private const string OPENLINK = "TWFRCqV5WeM2AkMXhKwJ03MhfPOieJfAsvXKUbWvQFQtLyyA5etMPabBehga950uzfZcH3Vi3QeEh41xRGEVFw";
+
+    private void LoadRecommend()
+    {
+        if (recommendPageManager == null)
+        {
+            // 创建页面管理器实例
+            recommendPageManager = WX.CreatePageManager();
+
+            // 监听组件加载完毕事件
+            recommendPageManager.On("ready", (res) =>
+            {
+                WX.ShowModal(new ShowModalOption
+                {
+                    title = "监听ready",
+                    content = "ready",
+                    success = (res) =>
+                    {
+                        Debug.Log("Ready success" + res);
+                    },
+                });
+                Debug.Log("组件加载完毕触发");
+            });
+
+            // 加载推荐页面
+            recommendPageManager.Load(new LoadOption
+            {
+                openlink = OPENLINK,
+            });
+        }
+    }
+
+    private void ShowRecommend()
+    {
+        if (recommendPageManager == null)
+        {
+            // 如果还没有创建页面管理器,直接创建并show(会自动执行一次load)
+            recommendPageManager = WX.CreatePageManager();
+
+            // 监听用户展示组件时触发
+            recommendPageManager.On("show", (res) =>
+            {
+                WX.ShowModal(new ShowModalOption
+                {
+                    title = "监听show",
+                    content = "show",
+                    success = (res) =>
+                    {
+                        Debug.Log("Show success" + res);
+                    },
+                });
+                Debug.Log("用户展示组件时触发");
+            });
+
+            // 监听用户关闭组件时触发
+            recommendPageManager.On("destroy", (res) =>
+            {
+                WX.ShowModal(new ShowModalOption
+                {
+                    title = "监听destroy",
+                    content = "destroy",
+                    success = (res) =>
+                    {
+                        Debug.Log("Destroy success" + res);
+                    },
+                });
+                Debug.Log($"用户关闭组件时触发,是否是相关推荐:");
+            });
+
+            // 监听组件发生错误时触发
+            recommendPageManager.On("error", (res) =>
+            {
+                WX.ShowModal(new ShowModalOption
+                {
+                    title = "监听error",
+                    content = "error",
+                    success = (res) =>
+                    {
+                        Debug.Log("Error success" + res);
+                    },
+                });
+                Debug.LogError($"组件发生错误时触发:");
+            });
+
+
+            recommendPageManager.Show(new ShowOption
+            {
+                openlink = OPENLINK,
+            });
+        }
+        else
+        {
+            // 已经执行过load,直接show即可
+            recommendPageManager.Show(new ShowOption());
+        }
+    }
+
+    private void Start()
+    {
+        GameManager.Instance.detailsController.BindExtraButtonAction(0, ShowRecommend);
+        GameManager.Instance.detailsController.BindExtraButtonAction(1, DestroyRecommend);
+    }
+
+    private void DestroyRecommend()
+    {
+        if (recommendPageManager != null)
+        {
+            // 销毁页面管理器
+            recommendPageManager.Destroy();
+            recommendPageManager = null;
+        }
+    }
+
+    // 测试 API
+    protected override void TestAPI(string[] args)
+    {
+        LoadRecommend();
+    }
+
+    private void OnDestroy()
+    {
+        DestroyRecommend();
+    }
+}
\ No newline at end of file
diff --git a/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManager.cs.meta b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManager.cs.meta
new file mode 100644
index 00000000..9fcb4393
--- /dev/null
+++ b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1c46a5b2480f82e41a56a3912ccdcee6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManagerSO.asset b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManagerSO.asset
new file mode 100644
index 00000000..7d12b550
--- /dev/null
+++ b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManagerSO.asset
@@ -0,0 +1,25 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 57c8415214254e23a63d9bfb8c6bbf62, type: 3}
+  m_Name: PageManagerSO
+  m_EditorClassIdentifier: 
+  entryName: "\u63A8\u8350\u7EC4\u4EF6"
+  entryOrder: 0
+  entryScriptTypeName: PageManager
+  entryAPI: CreatePageManager
+  entryDescription: "\u8BE6\u89C1\u5C0F\u6E38\u620F\u5B98\u65B9\u6587\u6863-\u6307\u5357-\u5F00\u653E\u80FD\u529B-\u6E38\u620F\u8FD0\u8425-\u8BC4\u4EF7\u4E0E\u63A8\u8350"
+  optionList: []
+  initialButtonText: "\u52A0\u8F7D\u63A8\u8350\u7EC4\u4EF6"
+  extraButtonList:
+  - buttonText: "\u663E\u793A\u63A8\u8350\u7EC4\u4EF6"
+  - buttonText: "\u9500\u6BC1\u63A8\u8350\u7EC4\u4EF6"
+  initialResultList: []
diff --git a/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManagerSO.asset.meta b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManagerSO.asset.meta
new file mode 100644
index 00000000..890e2ad8
--- /dev/null
+++ b/Demo/API_V2/Assets/API/OpenInterface/PageManager/PageManagerSO.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ed11eef37ea280c4abb753f670af92f4
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Demo/API_V2/Assets/API/Share/ShareEvent/ShareEvent.cs b/Demo/API_V2/Assets/API/Share/ShareEvent/ShareEvent.cs
index 60d4f163..ddc49cdf 100644
--- a/Demo/API_V2/Assets/API/Share/ShareEvent/ShareEvent.cs
+++ b/Demo/API_V2/Assets/API/Share/ShareEvent/ShareEvent.cs
@@ -155,7 +155,6 @@ public void showShareImageMenu()
                         new ShowShareImageMenuOption
                         {
                             path = res.tempFilePath,
-                            style = "default",
                             success = (res) =>
                             {
                                 Debug.Log("success");
diff --git a/Demo/API_V2/Assets/Scenes/MainScene.unity b/Demo/API_V2/Assets/Scenes/MainScene.unity
index 8420af92..f08eac28 100644
--- a/Demo/API_V2/Assets/Scenes/MainScene.unity
+++ b/Demo/API_V2/Assets/Scenes/MainScene.unity
@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 170076734}
-  m_IndirectSpecularColor: {r: 0.4465788, g: 0.49641275, b: 0.5748176, a: 1}
+  m_IndirectSpecularColor: {r: 0.44657826, g: 0.49641263, b: 0.57481676, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -6732,6 +6732,165 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 304702834}
   m_CullTransparentMesh: 0
+--- !u!1 &308172783
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 308172784}
+  - component: {fileID: 308172789}
+  - component: {fileID: 308172788}
+  - component: {fileID: 308172787}
+  - component: {fileID: 308172786}
+  - component: {fileID: 308172785}
+  m_Layer: 5
+  m_Name: "\u63A8\u8350\u7EC4\u4EF6"
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &308172784
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 308172783}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 1009248037}
+  - {fileID: 1991654045}
+  - {fileID: 492077447}
+  m_Father: {fileID: 369338999}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 500, y: -80}
+  m_SizeDelta: {x: 1000, y: 160}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &308172785
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 308172783}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 1, g: 1, b: 1, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Highlighted
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 308172788}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &308172786
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 308172783}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 36afc0df23af49b5a395bf8d010e7c03, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  entrySO: {fileID: 11400000, guid: ed11eef37ea280c4abb753f670af92f4, type: 2}
+  entryNameText: {fileID: 1009248039}
+--- !u!114 &308172787
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 308172783}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: -1
+  m_PreferredHeight: 160
+  m_FlexibleWidth: 1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!114 &308172788
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 308172783}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &308172789
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 308172783}
+  m_CullTransparentMesh: 0
 --- !u!1 &313589883
 GameObject:
   m_ObjectHideFlags: 0
@@ -7623,6 +7782,7 @@ RectTransform:
   m_Children:
   - {fileID: 1247325919}
   - {fileID: 291215307}
+  - {fileID: 308172784}
   - {fileID: 978239471}
   - {fileID: 969024170}
   - {fileID: 1724337318}
@@ -10915,6 +11075,81 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 469350618}
   m_CullTransparentMesh: 0
+--- !u!1 &492077446
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 492077447}
+  - component: {fileID: 492077449}
+  - component: {fileID: 492077448}
+  m_Layer: 5
+  m_Name: Line
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &492077447
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492077446}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 308172784}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: -50, y: 2}
+  m_Pivot: {x: 0.5, y: 0}
+--- !u!114 &492077448
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492077446}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.9333334, g: 0.9333334, b: 0.9333334, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &492077449
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492077446}
+  m_CullTransparentMesh: 0
 --- !u!1 &494198216
 GameObject:
   m_ObjectHideFlags: 0
@@ -21752,6 +21987,98 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1008708865}
   m_CullTransparentMesh: 0
+--- !u!1 &1009248036
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1009248037}
+  - component: {fileID: 1009248040}
+  - component: {fileID: 1009248039}
+  - component: {fileID: 1009248038}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1009248037
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1009248036}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 308172784}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: -40, y: 0}
+  m_SizeDelta: {x: -160, y: -90}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1009248038
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1009248036}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ad114bb7e387d46d7a9ad7af676060d0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!114 &1009248039
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1009248036}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 04a37534e45184b62bc44e172e5fe81e, type: 3}
+    m_FontSize: 45
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 230
+    m_Alignment: 3
+    m_AlignByGeometry: 1
+    m_RichText: 0
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u63A8\u8350\u7EC4\u4EF6"
+--- !u!222 &1009248040
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1009248036}
+  m_CullTransparentMesh: 0
 --- !u!1 &1025827703
 GameObject:
   m_ObjectHideFlags: 0
@@ -44480,6 +44807,81 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1990969960}
   m_CullTransparentMesh: 0
+--- !u!1 &1991654044
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1991654045}
+  - component: {fileID: 1991654047}
+  - component: {fileID: 1991654046}
+  m_Layer: 5
+  m_Name: Arrow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1991654045
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1991654044}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.7, y: 0.7, z: 0.7}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 308172784}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0.5}
+  m_AnchorMax: {x: 1, y: 0.5}
+  m_AnchoredPosition: {x: -25, y: 0}
+  m_SizeDelta: {x: 72, y: 72}
+  m_Pivot: {x: 1, y: 0.5}
+--- !u!114 &1991654046
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1991654044}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: b1a5e6c3cca1748e0a56f2485c899ceb, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1991654047
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1991654044}
+  m_CullTransparentMesh: 0
 --- !u!1 &1995808665
 GameObject:
   m_ObjectHideFlags: 0
diff --git a/Demo/API_V2/Assets/WX-WASM-SDK-V2/Editor/MiniGameConfig.asset b/Demo/API_V2/Assets/WX-WASM-SDK-V2/Editor/MiniGameConfig.asset
index 8a9e69c7..bd925fe9 100644
--- a/Demo/API_V2/Assets/WX-WASM-SDK-V2/Editor/MiniGameConfig.asset
+++ b/Demo/API_V2/Assets/WX-WASM-SDK-V2/Editor/MiniGameConfig.asset
@@ -13,13 +13,13 @@ MonoBehaviour:
   m_Name: MiniGameConfig
   m_EditorClassIdentifier: 
   ProjectConf:
-    projectName: "\u5FEB\u9002\u914D\u5C0F\u6E38\u620F\u793A\u4F8B"
-    Appid: wx7c792ca878775717
+    projectName: "\u5FEB\u9002\u914D\u5C0F\u6E38\u620F\u793A\u4F8B_\u63A8\u8350\u7EC4\u4EF6"
+    Appid: 
     CDN: 
     assetLoadType: 1
     compressDataPackage: 1
     VideoUrl: 
-    DST: 
+    DST: "D:/20250602/\u63A8\u8350\u7EC4\u4EF6"
     StreamCDN: 
     bundleHashLength: 32
     bundlePathIdentifier: StreamingAssets;
diff --git a/Demo/API_V2/Packages/manifest.json b/Demo/API_V2/Packages/manifest.json
index 7b592835..5f0a3903 100644
--- a/Demo/API_V2/Packages/manifest.json
+++ b/Demo/API_V2/Packages/manifest.json
@@ -1,6 +1,6 @@
 {
   "dependencies": {
-    "com.qq.weixin.minigame": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git",
+    "com.qq.weixin.minigame": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git#pre-v0.1.27",
     "com.unity.2d.sprite": "1.0.0",
     "com.unity.2d.tilemap": "1.0.0",
     "com.unity.ads": "4.4.2",
diff --git a/Demo/API_V2/Packages/packages-lock.json b/Demo/API_V2/Packages/packages-lock.json
index d7d27ab3..7174cdb0 100644
--- a/Demo/API_V2/Packages/packages-lock.json
+++ b/Demo/API_V2/Packages/packages-lock.json
@@ -1,11 +1,11 @@
 {
   "dependencies": {
     "com.qq.weixin.minigame": {
-      "version": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git",
+      "version": "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git#pre-v0.1.27",
       "depth": 0,
       "source": "git",
       "dependencies": {},
-      "hash": "5e68a1733007cb17db09f151bbf3b013b61d6ca5"
+      "hash": "30f908dc39f6cb54ad7c11a4b105158d162c6795"
     },
     "com.unity.2d.sprite": {
       "version": "1.0.0",