diff --git a/Runtime/GuruAdjust/AdjustService.cs b/Runtime/GuruAdjust/AdjustService.cs index 8a25782..79e69c8 100644 --- a/Runtime/GuruAdjust/AdjustService.cs +++ b/Runtime/GuruAdjust/AdjustService.cs @@ -3,7 +3,7 @@ namespace Guru { using UnityEngine; using com.adjust.sdk; - using System.Collections; + using System; public static class AdjustService { @@ -45,7 +45,8 @@ namespace Guru /// /// /// MIR 追踪 AppID - public static void StartService(string appToken, string fbAppId = "") + /// + public static void StartService(string appToken, string fbAppId = "", Action onDeeplinkCallback = null) { if (string.IsNullOrEmpty(appToken)) { @@ -65,7 +66,11 @@ namespace Guru #if UNITY_ANDROID if (!string.IsNullOrEmpty(fbAppId)) config.setFbAppId(fbAppId); // 注入 MIR ID #endif - + + if (onDeeplinkCallback != null) + { + config.setDeferredDeeplinkDelegate(onDeeplinkCallback); // 注入 Deeplink 回调 + } #if UNITY_EDITOR || DEBUG config.setLogDelegate(log => LogI(LOG_TAG, log)); diff --git a/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs b/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs index 9ce380d..a27e3ef 100644 --- a/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs +++ b/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs @@ -9,7 +9,6 @@ namespace Guru public static partial class FirebaseUtil { private static readonly string LOG_TAG = "Firebase"; - private static bool _isDebug = false; private static bool _isReady = false; public static bool IsReady => _isReady; @@ -19,16 +18,17 @@ namespace Guru public static Action OnFirebaseAuthResult; public static Action OnUserAuthResult; + private static Action _onDeeplinkCallback; - - - public static void InitFirebase(Action callback, bool isDebug = false) + /// + /// 初始化 Firebase 组件 + /// + /// + /// + public static void InitFirebase(Action callback, Action onDeeplinkCallback = null) { _isReady = false; - _isDebug = isDebug; - Analytics.InitAnalytics(); // 打点提前初始化 - - // Loom.StartUp(); // 确保主线程开启 + _onDeeplinkCallback = onDeeplinkCallback; // 初始化 Fireabse 依赖 FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => { @@ -93,34 +93,45 @@ namespace Guru } } + + private static void InitAssetByFirebaseIdAsync() + { + Debug.Log($"[SDK] --- InitAssetByFirebaseIdAsync"); + // 异步获取 FirebaseID + FirebaseAnalytics.GetAnalyticsInstanceIdAsync() + .ContinueWithOnMainThread(task => + { + string fid = task.Result; + if (task.IsCompleted && !string.IsNullOrEmpty(fid)) + { + // 保存本地ID备份 + IPMConfig.FIREBASE_ID = fid; // 保存FirebaseID + Debug.Log($"[SDK] --- Get FirebaseID: {fid}"); + GuruAnalytics.SetFirebaseId(fid); + } + else + { + Debug.LogError($"[SDK] --- Fetch FirebaseID failed on start!"); + } + + //--- 结束后启动相关的服务 --- + InitAdjustService(_onDeeplinkCallback); // 启动 AdjustService + InitAnalytics(); // 初始化打点逻辑和实现 + }); + } + + #region 启动 Adjust 服务 /// /// 启动 Adjust 服务 /// - private static void InitAdjustService() + private static void InitAdjustService(Action onDeeplinkCallback) { - FirebaseAnalytics.GetAnalyticsInstanceIdAsync() - .ContinueWithOnMainThread(task => - { - if (task.IsCompleted && !string.IsNullOrEmpty(task.Result)) - { - // 保存本地ID备份 - string fid = task.Result; - IPMConfig.FIREBASE_ID = fid; // 保存FirebaseID - } - else - { - UnityEngine.Debug.LogError($"Fetch FirebaseID failed on start!"); - } - - // 启动 AdjustService - string appToken = GuruSettings.Instance.AdjustSetting?.GetAppToken() ?? ""; - string fbAppId = GuruSettings.Instance.IPMSetting.FacebookAppId; - AdjustService.StartService(appToken, fbAppId); - }); - - + // 启动 AdjustService + string appToken = GuruSettings.Instance.AdjustSetting?.GetAppToken() ?? ""; + string fbAppId = GuruSettings.Instance.IPMSetting.FacebookAppId; + AdjustService.StartService(appToken, fbAppId, onDeeplinkCallback); }