# OMSDK Native Demo

4399 运营管理 SDK（OMSDK）iOS 原生接入示例工程，使用 Objective-C 编写，演示 SDK 的完整接入流程和各项功能调用。

## 环境要求

- Xcode 15.0+
- iOS 13.0+
- Objective-C

## 项目结构

```
OMSDKNativeDemo/
├── AppDelegate              # 应用入口，SDK 初始化
├── ViewController           # 首页（登录 / 客服入口）
├── GameViewController       # 功能展示页（登录后进入）
├── UserManager              # 用户信息管理单例
├── SDKFunctionCell          # 功能列表 Cell 组件
├── Helper/                  # 工具类（Toast、常量等）
├── m4399OM.xcframework      # 4399 运营管理 SDK
├── MTDQuickLogin.xcframework # 免密快捷登录 SDK
├── EAccountHYSDK.xcframework # 运营商一键登录 SDK
└── ThirdPart/               # 第三方库（Masonry、JGProgressHUD）
```

## 功能列表

| 功能 | 对应 API |
|------|----------|
| SDK 初始化 | `m4399OMManager preConfig:gameProtocolState:lastLoginUser:switchAccount:` |
| 登录 | `m4399OMManager loginWithSuccess:fail:` |
| 注销 | `m4399OMManager logout` |
| 充值（预充值） | `m4399OMManager prepayWithMoney:mark:success:fail:` |
| 获取内购商品列表 | `m4399OMManager fetchProductWithSuccess:fail:` |
| 发起内购 | `m4399OMManager purchaseWithProductID:mark:roleInfo:purchasingStatu:success:userCancel:other:` |
| 个人中心 | `m4399OMManager userCenter:` |
| 绑定手机号 | `m4399OMManager bindPhoneNumberWithSuccess:fail:` |
| 检查手机绑定状态 | `m4399OMManager checkPhoneBindingStatus:fail:` |
| 创建角色上报 | `m4399OMManager reportCreateWithRoleInfo:completion:` |
| 进入游戏上报 | `m4399OMManager reportCreateWithRoleInfo:completion:` |
| 事件上报 | `m4399OMManager reportEventWithEventName:attribute:completion:` |
| 评分引导 | `m4399OMManager reviewRequestWithCommentStatuCallback:` |
| 客服 | `m4399OMManager customerService:` |
| 在线 / 智能 / 表单客服 | `m4399OMManager onlineCustomerService:` |
| 切换账号 | 通过 `switchAccount` 回调 + 通知机制处理 |
| 获取 SDK 版本号 | `m4399OMManager version` |

## 快速开始

### 1. 克隆项目

```bash
git clone git@gitlab.4399doc.com:iossdk/omsdknativedemo.git
cd omsdknativedemo
```

### 2. 打开工程

使用 Xcode 打开 `OMSDKNativeDemo.xcodeproj`。

### 3. 配置 GameKey

在 `AppDelegate.m` 中修改为运营提供的 GameKey：

```objc
m4399OMManagerConfig *config = [[m4399OMManagerConfig alloc] initWithGamekey:@"你的GameKey"];
```

### 4. 配置 URL Scheme

在 `Info.plist` 中将 `CFBundleURLSchemes` 修改为 `OM + 你的GameKey`，例如：

```
OM1234567890
```

### 5. 运行

选择目标设备，点击 Run 即可。

## 接入流程概览

```
应用启动
  └─ AppDelegate: 初始化 SDK (preConfig)
       ├─ 游戏协议回调
       ├─ 上次登录用户回调 → 自动登录
       └─ 切换账号回调

首页 (ViewController)
  ├─ 点击「登录」→ SDK 登录弹窗 → 登录成功进入功能页
  └─ 点击「客服」→ 打开客服弹窗

功能页 (GameViewController)
  ├─ 充值 / 内购
  ├─ 角色上报 / 事件上报
  ├─ 个人中心 / 绑定手机
  ├─ 评分 / 客服
  └─ 注销 → 返回首页
```

## 注意事项

- Demo 中的 GameKey `6720935971` 仅供测试使用，正式接入请替换为运营分配的 Key
- 内购功能需要在 App Store Connect 中配置对应商品
- QQ 登录需要配置 `LSApplicationQueriesSchemes` 中的 `mqq` scheme
- 微信登录需要配置 `weixin` / `wechat` 相关 scheme
