Skip to content

Commit 30fd003

Browse files
authored
Merge pull request #1000 from wechat-miniprogram/docs/SDK_20250519
docs: SDK文档更新
2 parents 620f9e0 + 1573667 commit 30fd003

File tree

2 files changed

+121
-15
lines changed

2 files changed

+121
-15
lines changed

Design/CustomSDK.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
# 自定义SDK调用
2-
微信SDK提供了`WX.CallJSFunction``WX.CallJSFunctionWithReturn`接口实现了简单的第三方SDK调用,支持可序列化为JSON的**任意数量的参数****返回值**
2+
微信SDK提供了`WX.CallJSFunction``WX.CallJSFunctionWithReturn`接口实现了简单的第三方SDK调用,支持可序列化为JSON的**任意数量的参数****返回值**
33

4-
其中,JS侧的实际调用逻辑为`GameGlobal.sdkName.functionName(args)`所以在调用之前需要保证SDK位于`GameGlobal`下且SDK中含有该名称的function
4+
其中,JS侧的实际调用逻辑为`GameGlobal.sdkName.functionName(args)`所以在调用之前需要保证**SDK位于`GameGlobal`****SDK中含有该名称的函数**
55

6-
`WX.CallJSFunctionWithReturn`中,会将函数返回值转换为JSON后传回,若无返回值则传回`""`
6+
`WX.CallJSFunctionWithReturn`中,会将函数返回值转换为JSON后传回,若无返回值则传回`""`
77

8-
如需更加复杂的调用,可参考[WebGL:与浏览器脚本交互](https://docs.unity3d.com/cn/2018.4/Manual/webgl-interactingwithbrowserscripting.html)进行自定义定制。
8+
如需更加复杂的调用,可参考[WebGL:与浏览器脚本交互](https://docs.unity3d.com/cn/2018.4/Manual/webgl-interactingwithbrowserscripting.html)进行自定义定制。
99

1010
## 版本要求
1111
`转换插件 >= 202406062127`
1212

1313
## 代码示例
1414

15-
​ 示例中的"sdk""testFunction"、TestFunctionOption仅作为演示,实际使用中请自行更改。
15+
- CS侧调用(`"sdk"``"testFunction"``TestFunctionOption`仅作为演示,请依实际情况更改)
1616

1717
```csharp
1818
WeChatWASM.WX.CallJSFunction("sdk", "testFunction", new TestFunctionOption
@@ -35,11 +35,9 @@ WeChatWASM.WX.CallJSFunction("sdk", "testFunction", new TestFunctionOption
3535
});
3636
```
3737

38-
另外,在js侧代码中合适位置添加以下代码,可配合[构建模版能力](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/BuildTemplate.html)使用。
38+
- JS侧挂载SDK(`"sdk"``sdk`仅作为演示,请依实际情况更改)
39+
可配合[构建模版能力](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/BuildTemplate.html)使用。
3940

4041
```js
4142
GameGlobal["sdk"] = sdk;
4243
```
43-
44-
45-

Design/WX_SDK.md

Lines changed: 114 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,125 @@
11
# SDK 调用微信 API
22

3-
将 WX-WASM-SDK 这个目录拷贝至 unity 工程 Assets 目录下,在主入口初始化,回调后再执行你的主逻辑
3+
## 初始化
4+
5+
调用`Unity SDK`前,需要在主入口进行SDK初始化,回调后再执行主逻辑。
46

57
```
68
WX.InitSDK((int code)=> {
79
// 你的主逻辑
810
});
911
```
1012

11-
API 可以直接看`WX.cs`这个文件,里面有`详细注释说明`
13+
## 支持范围
14+
15+
`Unity SDK``WXSDK`的支持大体与[官网 API 文档](https://developers.weixin.qq.com/minigame/dev/api/)相同。
16+
17+
具体支持的 API 可以查看`WX.cs`文件,其中有详细注释说明。
18+
19+
### 更新机制
20+
21+
新版`Unity SDK`会在[lib.wx.api.d.ts](https://github.com/wechat-miniprogram/minigame-api-typings/blob/master/types/wx/lib.wx.api.d.ts)更新后及时更新。若基础库更新后[lib.wx.api.d.ts](https://github.com/wechat-miniprogram/minigame-api-typings/blob/master/types/wx/lib.wx.api.d.ts)暂未更新,开发者可参考[自定义SDK调用](./CustomSDK.md)临时调用WXSDK。
22+
23+
### Unity SDK 特供API
24+
25+
此处列出[lib.wx.api.d.ts](https://github.com/wechat-miniprogram/minigame-api-typings/blob/master/types/wx/lib.wx.api.d.ts)中未列出,仅在`Unity SDK`中可用的API列表。
26+
27+
| 类别 | 函数名 | 备注 |
28+
|------|--------|------|
29+
| **基础功能** | InitSDK | 初始化SDK |
30+
|| CanIUse | 判断API在当前环境是否可用 |
31+
|| SetDevicePixelRatio | 设置设备像素比 |
32+
|| CallJSFunction | 调用JS函数 |
33+
|| CallJSFunctionWithReturn | 调用JS函数并获取返回值 |
34+
| **字体** | GetWXFont | 获取微信字体 |
35+
| **广告** | CreateFixedBottomMiddleBannerAd | 创建固定底部中间的bannerAd |
36+
| **社交组件** | CreateMiniGameChat | 创建社交组件 |
37+
| **开放数据域** | ShowOpenData | 显示开放数据域Canvas |
38+
|| HideOpenData | 显示开放数据域Canvas |
39+
| **音频** | PreDownloadAudios | 预下载音频资源 |
40+
| **云测试** | IsCloudTest | 是否小游戏云测试环境 |
41+
| **隐私协议弹窗** | PrivacyAuthorizeResolve | 由于C#侧无法直接返回JS绑定函数,所以新增一个API专门用于在WX.OnNeedPrivacyAuthorization的回调内调用 |
42+
| **本地缓存** | StorageSetIntSync | 同wx.setStorageSync |
43+
|| StorageGetIntSync | 同wx.getStorageSync |
44+
|| StorageSetStringSync | 同wx.setStorageSync |
45+
|| StorageSetFloatSync | 同wx.setStorageSync |
46+
|| StorageGetFloatSync | 同wx.getStorageSync |
47+
|| StorageDeleteAllSync | 同wx.clearStorageSync |
48+
|| StorageDeleteKeySync | 同wx.removeStorageSync |
49+
|| StorageHasKeySync | 判断本地缓存中是否包含该key |
50+
| **文件缓存清理** | CleanAllFileCache | 清理所有文件缓存 |
51+
|| CleanFileCache | 清理文件缓存 |
52+
|| RemoveFile | 删除文件 |
53+
|| GetCachePath | 获取缓存路径 |
54+
| **性能** | GetTotalMemorySize | 获取当前UnityHeap总内存(峰值) |
55+
|| GetTotalStackSize | 获取当前UnityHeap Stack大小 |
56+
|| GetStaticMemorySize | 获取当前UnityHeap静态内存 |
57+
|| GetDynamicMemorySize | 获取当前UnityHeap动态内存 |
58+
|| GetUsedMemorySize | 获取已使用UnityHeap内存大小 |
59+
|| GetUnAllocatedMemorySize | 获取未分配UnityHeap内存大小 |
60+
|| LogUnityHeapMem | 打印UnityHeap内存 |
61+
|| GetBundleNumberInMemory | 获取当前AssetBundle在JS内存中的数量 |
62+
|| GetBundleNumberOnDisk | 获取当前AssetBundle在磁盘中不可清理的数量 |
63+
|| GetBundleSizeInMemory | 获取当前AssetBundle在JS内存中的体积 |
64+
|| GetBundleSizeOnDisk | 获取当前AssetBundle在磁盘中不可清理的体积 |
65+
|| OpenProfileStats | 打开性能面板 |
66+
|| ProfilingMemoryDump | ProfilingMemory内存Dump |
67+
| **LogManager** | WriteLog | 同LogManager.log |
68+
|| WriteWarn | 同LogManager.warn |
69+
|| LogManagerDebug | 同LogManager.debug |
70+
|| LogManagerInfo | 同LogManager.info |
71+
|| LogManagerLog | 同LogManager.log |
72+
|| LogManagerWarn | 同LogManager.warn |
73+
| **上报** | ReportUserBehaviorBranchAnalytics | 分支相关的UI组件相关事件的上报 |
74+
|| UncaughtException | 异常上报 |
75+
|| ReportGameSceneError | 上报游戏自定义场景的错误信息 |
76+
| **插件配置** | SetDataCDN | 设置数据CDN |
77+
|| SetPreloadList | 设置预加载列表 |
78+
| **启动剧情** | GetLaunchOperaHandler | 获取启动剧情交互句柄 |
79+
| **其他** | ReportGameStart | 游戏开始运行时上报 |
80+
|| HideLoadingPage | 隐藏加载页 |
81+
|| PreloadConcurrent | 控制预载并发数 |
82+
|| OnLaunchProgress | 获取启动loader的启动数据 |
83+
84+
### 暂未支持的WXAPI
85+
86+
`暂未支持的WXAPI`中有一部分接口**需要在开放数据域调用**,故暂无法支持。
87+
88+
| 主类别 | 副类别 | 函数名 | 描述 |
89+
|------|------|------|------|
90+
| **基础** | **分包加载** | wx.loadSubpackage | 触发分包加载 |
91+
| **转发** || wx.checkHandoffEnabled | 检查是否可以进行接力 |
92+
||| wx.startHandoff | 开始进行接力 |
93+
| **界面** | **窗口** | wx.setWindowSize | 设置窗口大小 |
94+
| **网络** | **WebSocket** | wx.sendSocketMessage | 通过 WebSocket 连接发送数据 |
95+
||| wx.onSocketOpen | 监听 WebSocket 连接打开事件 |
96+
||| wx.onSocketMessage | 监听 WebSocket 接收到服务器的消息事件 |
97+
||| wx.onSocketError | 监听 WebSocket 错误事件 |
98+
||| wx.onSocketClose | 监听 WebSocket 连接关闭事件 |
99+
||| wx.closeSocket | 关闭 WebSocket 连接 |
100+
| **数据缓存** || wx.getStorage | 异步获取本地缓存 |
101+
||| wx.setStorage | 异步存储本地缓存 |
102+
||| wx.setStorageSync | 同步存储本地缓存 |
103+
||| wx.getStorageSync | 同步获取本地缓存 |
104+
||| wx.clearStorage | 异步清理本地缓存 |
105+
||| wx.clearStorageSync | 同步清理本地缓存 |
106+
||| wx.createBufferURL | 创建Buffer URL |
107+
| **渲染** | **图片** | wx.createImage | 创建图片对象 |
108+
| **开放接口** | **开放数据** | wx.getFriendCloudStorage | 获取同玩好友托管数据 |
109+
||| wx.getGroupCloudStorage | 获取群同玩成员游戏数据 |
110+
||| wx.getGroupInfo | 获取群信息 |
111+
||| wx.getPotentialFriendList | 获取可能对游戏感兴趣的未注册的好友名单 |
112+
||| wx.getUserCloudStorage | 获取当前用户托管数据 |
113+
||| wx.getUserCloudStorageKeys | 获取当前用户托管数据键值 |
114+
||| wx.modifyFriendInteractiveStorage | 修改好友的互动型托管数据 |
115+
||| wx.shareMessageToFriend | 给指定的好友分享游戏信息 |
116+
| **工具** || wx.encode | 将字符串编码成ArrayBuffer |
117+
||| wx.decode | 将ArrayBuffer解码成字符串 |
118+
119+
## 调用方法
120+
121+
Unity 版本的 API 大体与[官网 API 文档](https://developers.weixin.qq.com/minigame/dev/api/)的 JS 版本 API 类似,使用时可以参考。
12122

13-
本 Unity 的 SDK 的 API 大体与[官网 API 文档](https://developers.weixin.qq.com/minigame/dev/api/)的 JS 版本 API 类似,使用时可以参考之。
14123
如 JS 版的 banner 广告的调用如下:
15124

16125
```js
@@ -69,9 +178,9 @@ bannerAd.OnError((WXADErrorResponse res)=>
69178

70179
## 开发建议
71180

72-
### Demo API 示例
181+
### API 示例
73182

74-
使用示例我们会逐渐补充到[Demo](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo), 其中 API 项目为常见到使用范例,请优先查阅用法。
183+
使用示例我们会逐渐补充到[Demo](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo), 其中 API 项目为常见使用范例,请优先查阅用法。
75184

76185
### 联调效率
77186

@@ -92,4 +201,3 @@ gl.clear(gl.COLOR_BUFFER_BIT);
92201
1. 广告接口是否需要上线后才能调试
93202

94203
- 是的,需要上线并累计 UV>1000 才可以开通广告主
95-

0 commit comments

Comments
 (0)