using System;
using Cysharp.Threading.Tasks;
///
/// 平台服务接口,封装各小游戏平台的 API 差异
///
public interface IPlatformService
{
///
/// 初始化平台 SDK
///
/// 初始化是否成功
UniTask InitAsync();
///
/// 获取平台类型
///
PlatformType GetPlatformType();
///
/// 登录(获取用户授权)
///
/// 登录结果
UniTask LoginAsync();
///
/// 分享内容
///
/// 分享数据
/// 分享是否成功
UniTask ShareAsync(ShareData shareData);
///
/// 显示广告
///
/// 广告类型
/// 广告结果
UniTask ShowAdAsync(AdType adType);
///
/// 保存数据到本地存储
///
/// 键
/// 值(JSON 字符串)
/// 保存是否成功
UniTask SaveDataAsync(string key, string value);
///
/// 从本地存储加载数据
///
/// 键
/// 值(JSON 字符串),如果不存在返回 null
UniTask LoadDataAsync(string key);
///
/// 下载文件到本地
///
/// 远程 URL
/// 本地路径
/// 进度回调
/// 本地文件路径,失败返回 null
UniTask DownloadFileAsync(string url, string localPath, Action onProgress = null);
///
/// 获取系统信息
///
/// 系统信息
SystemInfo GetSystemInfo();
///
/// 震动反馈
///
/// 震动类型
void Vibrate(VibrationType vibrationType);
}