|
| 1 | +# GameFrameX.Login.WeChat 微信登录 |
| 2 | + |
| 3 | +> GameFrameX.Login.WeChat 是 GameFrameX 框架的微信登录组件,基于 ShareSDK 授权,并通过 GameFrameX 事件系统返回登录结果。 |
| 4 | +
|
| 5 | +## 功能 |
| 6 | + |
| 7 | +- `初始化` |
| 8 | +- `登录` |
| 9 | +- `登出` |
| 10 | + |
| 11 | +## 安装与依赖 |
| 12 | + |
| 13 | +- 包名:`com.gameframex.unity.login.wechat`(UPM Git:`https://github.com/gameframex/com.gameframex.unity.login.wechat.git`) |
| 14 | +- 依赖:`com.gameframex.unity >= 1.1.1` |
| 15 | +- 插件:需要集成 `cn.sharesdk.unity3d`(ShareSDK)并在场景中存在 `ShareSDK` 组件。 |
| 16 | + |
| 17 | +## 使用方法 |
| 18 | + |
| 19 | +1. 挂载组件 |
| 20 | + - 在 `GameEntry` 上挂载 `WeChatLoginComponent` 组件。 |
| 21 | + - 确保 `GameEntry` 上已挂载 `EventComponent`(用于接收授权事件)。 |
| 22 | + - 在场景中添加并配置 `ShareSDK` 组件(来自 `cn.sharesdk.unity3d`)。 |
| 23 | + |
| 24 | +2. 设置参数 |
| 25 | + - 在 `WeChatLoginComponent` 的检视器中设置: |
| 26 | + - `AppId`:微信开放平台应用的 `AppID` |
| 27 | + - `AppKey`:微信开放平台应用的 `AppSecret` |
| 28 | + |
| 29 | +3. 调用方法 |
| 30 | + ```csharp |
| 31 | + using GameFrameX.Login.WeChat.Runtime; |
| 32 | + |
| 33 | + // 获取微信登录组件 |
| 34 | + var weChatLoginComponent = GameEntry.GetComponent<WeChatLoginComponent>(); |
| 35 | + |
| 36 | + // 初始化(会将 AppId/AppKey 写入 ShareSDK 的 WeChat 配置) |
| 37 | + weChatLoginComponent.Init(); |
| 38 | + |
| 39 | + // 登录 |
| 40 | + weChatLoginComponent.Login( |
| 41 | + (weChatLoginSuccess) => |
| 42 | + { |
| 43 | + Debug.Log($"登录成功! {weChatLoginSuccess.ToString()}"); |
| 44 | + // weChatLoginSuccess.NickName / UnionId / OpenId / PhotoUrl 可用 |
| 45 | + }, |
| 46 | + (code) => |
| 47 | + { |
| 48 | + Debug.LogError($"登录失败! 响应码: {code}"); |
| 49 | + }); |
| 50 | + |
| 51 | + // 登出(取消授权) |
| 52 | + weChatLoginComponent.LogOut(); |
| 53 | + ``` |
| 54 | + |
| 55 | +## 返回数据结构 |
| 56 | + |
| 57 | +- 类型:`WeChatLoginSuccess` |
| 58 | + - `NickName`:微信昵称 |
| 59 | + - `OpenId`:用户 `OpenID` |
| 60 | + - `UnionId`:用户 `UnionID` |
| 61 | + - `PhotoUrl`:头像地址 |
| 62 | + |
| 63 | +登录失败时的 `code` 为 ShareSDK 的 `ResponseState` 枚举对应值(`cn.sharesdk.unity3d.ResponseState`),用于判断失败原因。 |
| 64 | + |
| 65 | +## 平台配置提示 |
| 66 | + |
| 67 | +- 请按 ShareSDK 官方文档完成微信登录的 Android/iOS 平台配置(注册应用、签名/包名、URL Scheme/通用链接等)。 |
| 68 | +- 组件在运行时会将 `AppId` 与 `AppSecret` 填充到 ShareSDK 的 `wechat / wechatFavorites / wechatMoments` 配置,无需在 ShareSDK Inspector 手动重复填写。 |
| 69 | +- 场景中必须存在 `ShareSDK` 组件,否则无法授权。 |
| 70 | + |
| 71 | +## 组件与模块 |
| 72 | + |
| 73 | +- `WeChatLoginComponent`:对外组件,提供 `Init / Login / LogOut`。 |
| 74 | +- `IWeChatLoginManager`:登录管理接口。 |
| 75 | +- `WeChatLoginManager`:具体实现,订阅授权事件并回调结果。 |
| 76 | +- `WeChatLoginSuccess`:登录成功数据结构。 |
| 77 | +- `GameFrameXWeChatLoginCroppingHelper`:辅助保留类,供链接裁剪,用户无需配置。 |
| 78 | + |
| 79 | +## 参考与文档 |
| 80 | + |
| 81 | +- GameFrameX 文档:https://gameframex.doc.alianblank.com |
| 82 | +- 本包仓库:https://github.com/gameframex/com.gameframex.unity.login.wechat.git |
0 commit comments