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