using UnityEngine;
using LitJson;
using System;
///
/// SDK平台实现的抽象基类。
/// 每个目标平台(Android、WebGL等)继承此类并实现各自的逻辑。
/// SDKUtils持有一个SDKBaseImpl实例,所有平台差异均通过此基类委托。
///
public abstract class SDKBaseImpl
{
protected readonly SDKUtils utils;
protected SDKBaseImpl(SDKUtils utils)
{
this.utils = utils;
}
// -------------------------------------------------------
// 必须由子类实现的平台核心方法
// -------------------------------------------------------
/// 向平台原生SDK发送JSON消息
public abstract void SendToNative(string jsonStr);
/// 平台初始化(检查内置资源拷贝状态、平台特有设置等)
public abstract void InitPlatform();
/// 触发SDK账号登录流程
public abstract void FreePlatformLogin();
/// 填充平台特有的设备信息字段(如Android的mac/imei等)
public abstract void FillDeviceInfo(JsonData json);
/// 退出游戏(各平台行为不同)
public abstract void ExitGame();
// -------------------------------------------------------
// 可选重写(默认空实现,仅Android等平台需要)
// -------------------------------------------------------
/// 同步客户端包ID到原生SDK
public virtual void SyncClientPackageID() { }
/// 动态申请单个权限
public virtual void RequestPermission(string permission, Action callBack) { }
/// 启动时批量申请权限(由SDK决定策略)
public virtual void RequestPermissionStart() { }
}