using System; using System.Threading.Tasks; using TapTap.Common.Internal; using TapTap.UI; using UnityEngine; using System.Reflection; using System.Collections; namespace TapTap.Common { public class TapCommon { public static readonly string SDKVersion = "3.30.3"; public static readonly int SDKVersionCode = 33003001; private static TapConfig config; public static TapConfig Config => config; private static ITapCommonPlatform platformWrapper; private static bool disableDurationStatistics; public static bool DisableDurationStatistics { get => disableDurationStatistics; set { disableDurationStatistics = value; } } static TapCommon() { platformWrapper = PlatformTypeUtils.CreatePlatformImplementationObject(typeof(ITapCommonPlatform), "TapTap.Common") as ITapCommonPlatform; } public static void Init(TapConfig config) { if (config == null) throw new ArgumentException("[TapSDK] config is null!"); if (string.IsNullOrEmpty(config.ClientID)) throw new ArgumentException("[TapSDK] clientID is null or empty!"); // if (string.IsNullOrEmpty(config.ClientToken)) // throw new ArgumentException("[TapSDK] clientToken is null or empty!"); TapCommon.config = config; platformWrapper?.Init(config); SetXua(); #if UNITY_IOS || UNITY_ANDROID if (UnityMonobehaviorWrapper.Instance != null) { UnityMonobehaviorWrapper.Instance.Init(); } #endif } public static string DeiveId { get { TapLogger.Debug($"Device Id: {platformWrapper?.DeviceId}"); return platformWrapper?.DeviceId; } } public static int DeviceType { get { TapLogger.Debug($"Device Type: {platformWrapper.DeviceType}"); return platformWrapper.DeviceType; } } public static void GetRegionCode(Action callback) { platformWrapper?.GetRegionCode(callback); } public static void IsTapTapInstalled(Action callback) { platformWrapper?.IsTapTapInstalled(callback); } public static void IsTapTapGlobalInstalled(Action callback) { platformWrapper?.IsTapTapGlobalInstalled(callback); } public static void UpdateGameInTapTap(string appId, Action callback) { platformWrapper?.UpdateGameInTapTap(appId, callback); } public static void UpdateGameInTapGlobal(string appId, Action callback) { platformWrapper?.UpdateGameInTapGlobal(appId, callback); } public static void OpenReviewInTapTap(string appId, Action callback) { platformWrapper?.OpenReviewInTapTap(appId, callback); } public static void OpenReviewInTapGlobal(string appId, Action callback) { platformWrapper?.OpenReviewInTapGlobal(appId, callback); } public static void SetXua() { platformWrapper?.SetXua(); } public static void SetLanguage(TapLanguage language) { TapLocalizeManager.SetCurrentLanguage(language); platformWrapper?.SetLanguage(language); } public static void RegisterProperties(string key, ITapPropertiesProxy proxy) { platformWrapper?.RegisterProperties(key, proxy); } public static void AddHost(string host, string replaceHost) { platformWrapper?.AddHost(host, replaceHost); } public static Task UpdateGameAndFailToWebInTapTap(string appId) { return platformWrapper?.UpdateGameAndFailToWebInTapTap(appId); } public static Task UpdateGameAndFailToWebInTapGlobal(string appId) { return platformWrapper?.UpdateGameAndFailToWebInTapGlobal(appId); } public static Task UpdateGameAndFailToWebInTapTap(string appId, string webUrl) { return platformWrapper?.UpdateGameAndFailToWebInTapTap(appId, webUrl); } public static Task UpdateGameAndFailToWebInTapGlobal(string appId, string webUrl) { return platformWrapper?.UpdateGameAndFailToWebInTapGlobal(appId, webUrl); } public static Task OpenWebDownloadUrlOfTapTap(string appId) { return platformWrapper?.OpenWebDownloadUrlOfTapTap(appId); } public static Task OpenWebDownloadUrlOfTapGlobal(string appId) { return platformWrapper?.OpenWebDownloadUrlOfTapGlobal(appId); } public static Task OpenWebDownloadUrl(string url) { return platformWrapper?.OpenWebDownloadUrl(url); } public static Task IsLaunchedFromTapTapPC() { #if UNITY_STANDALONE_WIN return platformWrapper?.IsLaunchedFromTapTapPC(); #endif return Task.FromResult(false); } #if UNITY_STANDALONE_WIN /// /// 注册 TapTap PC 客户端运行状态监听 /// /// 监听回调 public static void RegisterTapTapPCStateChangeListener(Action action) { platformWrapper?.RegisterTapTapPCStateChangeListener(action); } /// /// 移除 TapTap PC 客户端运行状态监听 /// /// 监听回调 public static void UnRegisterTapTapPCStateChangeListener(Action action) { platformWrapper?.UnRegisterTapTapPCStateChangeListener(action); } #endif public static void SetDurationStatisticsEnabled(bool enable) { //判断当前是否接入防沉迷模块,接入时必须启用 try { Assembly.Load("TapTap.AntiAddiction.Mobile.Runtime"); Debug.Log("sdkcore: current project intergrate tapAnti, so not support swicth upload "); return; } catch (Exception e) { Debug.Log("sdkcore: current project not intergrate tapAnti, so support swicth upload "); } platformWrapper?.SetDurationStatisticsEnabled(enable); } } }