update: 添加 Deeplink 接口和对应的功能

--story=1021486 --user=yufei.hu 【中台】【Deeplink】兼容 1.0.11.1 实现的 Deeplink Callback 的功能, 应用在当前的版本上(QA 无需测试) https://www.tapd.cn/33527076/s/1164091

Signed-off-by: huyufei <yufei.hu@castbox.fm>

# Conflicts:
#	Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs
胡宇飞 2024-08-13 18:48:51 +08:00
parent 5c4abeb678
commit 33c21947ca
2 changed files with 49 additions and 33 deletions

View File

@ -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
/// </summary>
/// <param name="appToken"></param>
/// <param name="fbAppId">MIR 追踪 AppID</param>
public static void StartService(string appToken, string fbAppId = "")
/// <param name="onDeeplinkCallback"></param>
public static void StartService(string appToken, string fbAppId = "", Action<string> 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));

View File

@ -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<bool> OnFirebaseAuthResult;
public static Action<bool> OnUserAuthResult;
private static Action<string> _onDeeplinkCallback;
public static void InitFirebase(Action callback, bool isDebug = false)
/// <summary>
/// 初始化 Firebase 组件
/// </summary>
/// <param name="callback"></param>
/// <param name="isDebug"></param>
public static void InitFirebase(Action callback, Action<string> 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 服务
/// <summary>
/// 启动 Adjust 服务
/// </summary>
private static void InitAdjustService()
private static void InitAdjustService(Action<string> 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);
}