Files
CaptainDiceDubloons_IOS_unity/Assets/Scripts/AppsFlyerObjectScript1.cs
T

165 lines
5.5 KiB
C#
Raw Normal View History

2026-05-20 12:01:19 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using AppsFlyerSDK;
using ChillConnect;
using DG.Tweening;
using SGModule.Common.Helper;
using SGModule.Net;
using SGModule.NetKit;
2026-05-25 17:09:37 +08:00
// using Unity.Advertisement.IosSupport;
2026-05-20 12:01:19 +08:00
using UnityEngine;
2026-05-25 15:06:47 +08:00
namespace IgnoreOPS
2026-05-20 12:01:19 +08:00
{
internal class AppsFlyerObjectScript1 : MonoBehaviour, IAppsFlyerConversionData
{
public string appID;
public bool is_init;
public Coroutine m_Coroutine;
void Start()
{
AddListener();
AppsFlyer.setIsDebug(true);
2026-05-25 17:05:16 +08:00
// #if UNITY_IOS && !UNITY_EDITOR
// appID = "6746832797";
// m_Coroutine = CrazyAsyKit.StartCoroutine(loopWaitInitAf());
// #endif
2026-05-20 12:01:19 +08:00
2026-05-25 17:05:16 +08:00
// #if UNITY_EDITOR
2026-05-20 12:01:19 +08:00
NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
2026-05-25 17:05:16 +08:00
// #endif
2026-05-20 12:01:19 +08:00
}
private void AddListener()
{
NetworkDispatcher.Instance.AddListener(NetworkMsg.NotNetwork, RequestLogin);
}
private void RemoveListener()
{
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.NotNetwork, RequestLogin);
}
void OnDestroy()
{
RemoveListener();
}
void RequestLogin(object obj = null)
{
if (GameHelper.IsConnect())
{
GameDispatcher.Instance.Dispatch(GameMsg.Network_reconnection);
}
CrazyAsyKit.StopCoroutine(m_Coroutine);
m_Coroutine = CrazyAsyKit.StartCoroutine(loopWaitInitAf());
}
private IEnumerator loopWaitInitAf()
{
// yield return new WaitForSeconds(0.5f);
// #if !ChillConnectRelease
// if (!GameHelper.IsConnect()) GameHelper.ShowTips($"is link network{GameHelper.IsConnect()}");
// #endif
var isConnect = GameHelper.IsConnect();
if (!isConnect)
{
float retryTime = 0f;
const float maxRetryTime = 3f;
while (!GameHelper.IsConnect() && retryTime < maxRetryTime)
{
yield return new WaitForSeconds(0.2f);
retryTime += 0.2f;
}
// 再次确认网络状态
isConnect = GameHelper.IsConnect();
if (!isConnect)
{
// 超时且仍未连接,触发无网络提示
Action action = () =>
{
TimerHelper.mEasy.AddTimer(0.5f, () =>
{
NetworkDispatcher.Instance.Dispatch(NetworkMsg.NotNetwork);
});
};
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, action);
}
}
if (isConnect)
{
TrackKit.TrackLoginFunnel(LoginFunnelEventType.AfSend);
float a = 0;
2026-05-25 17:09:37 +08:00
// if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() ==
// ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
// {
// ATTrackingStatusBinding.RequestAuthorizationTracking();
// }
// while ((ATTrackingStatusBinding.GetAuthorizationTrackingStatus() ==
// ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED) && (a < 5.0f))
// {
// a += 0.5f;
// yield return new WaitForSeconds(0.5f);
// }
2026-05-20 12:01:19 +08:00
AppsFlyer.initSDK("ZRPEXnZD9jgqWx8RmiQbiT", appID, this);
AppsFlyer.startSDK();
2026-05-25 17:09:37 +08:00
// AppsFlyer.AFLog("8888888888888888888",
// ATTrackingStatusBinding.GetAuthorizationTrackingStatus().ToString());
2026-05-20 12:01:19 +08:00
}
}
public void onConversionDataSuccess(string conversionData)
{
Debug.Log($"[AF] onConversionDataSuccess-------- {is_init}");
if (is_init) return;
is_init = true;
AppsFlyer.AFLog("onConversionDataSuccess", conversionData);
var conversionDataDictionary = AppsFlyer.CallbackStringToDictionary(conversionData);
var json = SerializeUtil.ToJsonIndented(conversionDataDictionary);
SuperApplication.Instance.attribution =
conversionDataDictionary.TryGetValue("af_status", out var afStatus)
? afStatus.ToString().ToLower()
: "organic";
NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
TrackKit.TrackLoginFunnel(LoginFunnelEventType.AfRecv, "success");
}
public void onConversionDataFail(string error)
{
Debug.Log($"[AF] onConversionDataFail-------- {is_init}");
if (is_init) return;
is_init = true;
AppsFlyer.AFLog("onConversionDataFail", error);
NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
TrackKit.TrackLoginFunnel(LoginFunnelEventType.AfRecv, "fail");
}
public void onAppOpenAttribution(string attributionData)
{
AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
Dictionary<string, object> attributionDataDictionary =
AppsFlyer.CallbackStringToDictionary(attributionData);
}
public void onAppOpenAttributionFailure(string error)
{
AppsFlyer.AFLog("onAppOpenAttributionFailure", error);
}
}
}