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