Files
MergeGangRush_unity_IOS/Assets/Scripts/Roy/newweb/SdkManager.cs
T

412 lines
16 KiB
C#
Raw Normal View History

2026-07-15 14:24:29 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using FairyGUI;
using UnityEngine;
using UnityEngine.EventSystems;
using BingoBrain;
using DG.Tweening;
using BingoBrain;
using Unity.VisualScripting.FullSerializer;
using Unity.VisualScripting;
using Newtonsoft.Json;
using System.Collections;
using ScrewsMaster;
namespace DontConfuse
{
public class SdkManager : MonoBehaviour
{
private static SdkManager _instance;
// 供外部调用的公共属性
public static SdkManager Instance
{
get
{
// 如果实例为空,尝试在场景中寻找已经挂载的脚本
if (_instance == null)
{
_instance = FindFirstObjectByType<SdkManager>();
if (_instance == null)
{
Debug.LogError("场景中没有找到挂载 SdkManager 的物体!请确保场景中有一个 GameObject 挂载了该脚本。");
}
}
return _instance;
}
}
private void Awake()
{
// 当场景加载时,如果 _instance 还没赋值,就由挂载在物体上的自己来赋值
if (_instance == null)
{
_instance = this;
DontDestroyOnLoad(gameObject); // 可选:如果跨场景不想被销毁,加上这行
}
else if (_instance != this)
{
// 防止场景里不小心挂载了多个 SdkManager secondary 实例直接销毁,保证单例唯一
Destroy(gameObject);
}
}
public void OpenWv()
{
// Debug.Log("[WebviewManager] SetPadding");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.OpenWv();
#endif
}
public void SetPadding(float left, float top, float right, float bottom)
{
// Debug.Log("[WebviewManager] SetPadding");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.SetPadding(left, top, right, bottom);
#endif
}
public void SetDarkThough(bool though)
{
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.SetDarkThough(though);
#endif
}
public void SetBtn(int left, int top, int right, int bottom)
{
// Debug.Log("[WebviewManager] SetBtn");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.SetBtn(left, top, right, bottom);
#endif
}
public void addH5Field(int field1, int field2, int field3, int field4, int field5, string field6, string field7, string dark_url, string light_url, bool is_gift, string web_through_str, string click_add_time)
{
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.addH5Field(field1,field2,field3,field4,field5,field6,field7,dark_url,light_url,is_gift,web_through_str,click_add_time);
#endif
}
public void ShowH5View(bool flag)
{
// Debug.Log("[WebviewManager] SetCTEnable");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.ShowH5View(flag);
#endif
}
public void SetIconProgress(float val)
{
// Debug.Log("[WebviewManager] SetCTEnable");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.SetIconProgress(val);
#endif
}
public void ShowFlyBtn(bool flag)
{
// Debug.Log("[WebviewManager] SetCTEnable");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.ShowFlyBtn(flag);
#endif
}
public void setFlyBtnTag(bool flag)
{
// Debug.Log($"[WebviewManager] setFlyBtnTag ---{flag}");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.setFlyBtnTag(flag);
#endif
}
public void setRewardBtnTag(bool flag)
{
// Debug.Log($"[WebviewManager] setRewardBtnTag--- {flag}");
#if UNITY_IOS && !UNITY_EDITOR
BrigdeIOS.setRewardBtnTag(flag);
#endif
}
public void ObjC_TouchClick(string name)
{
// Debug.Log("Touch click: " + name);
GameDispatcher.Instance.Dispatch(GameMsg.H5ViewClickBtn, name);
}
public void H5AutoRefresh(string string_xcode)
{
if (string_xcode.Contains("|h5"))
{
string[] _string_arr = string_xcode.Split("|");
if (_string_arr.Length >= 2)
{
for (int i = 0; i < ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links.Count; i++)
{
if (ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links[i].url == _string_arr[0])
{
light_restoredList[i]++;
string str = string.Join(",", light_restoredList);
PlayerPrefs.SetString("Dailyrefreshnum", str);
break;
}
}
H5sendClass info = new H5sendClass() { link = _string_arr[0], type = "h5" };
NetworkKit_sdk.PostWithHeader<object>("event/h5Impressions", info, (isSuccess, obj) =>
{
if (isSuccess)
{
Debug.Log("发送成功" + _string_arr[0]);
}
});
}
}
else if (string_xcode.Contains("|h6"))
{
string[] _string_arr = string_xcode.Split("|");
if (_string_arr.Length >= 2)
{
for (int i = 0; i < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList.Count; i++)
{
for (int j = 0; j < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links.Count; j++)
{
if (ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links[j].url == _string_arr[0])
{
dark_restoredList[i][j]++;
PlayerPrefs.SetString("Darkrefreshnum", string.Join(";", dark_restoredList.Select(row => string.Join(",", row))));
break;
}
}
}
H5sendClass info = new H5sendClass() { link = _string_arr[0], type = "h6" };
NetworkKit_sdk.PostWithHeader<object>("event/h5Impressions", info, (isSuccess, obj) =>
{
if (isSuccess)
{
Debug.Log("发送成功" + _string_arr[0]);
}
});
}
}
}
private GList select_glist;
private float select_glist_y;
public void TouchClickPoint(string name)
{
// Debug.Log("TouchClickPoint" + name);
if (name == null) return;
if (name == "flyBtn")
{
NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior, BuriedPointEvent.fly_ct_number, 1);
//NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior,BuriedPointEvent.fly_ct_people,1);
}
if (name == "rewardBtn")
{
NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior, BuriedPointEvent.annular_ct_number, 1);
//NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior,BuriedPointEvent.annular_ct_people,1);
}
if (name == "finish")
{
NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior, BuriedPointEvent.annular_finish_number, 1);
}
}
List<int> light_restoredList;
List<List<int>> dark_restoredList;
public void RefreshUrl()
{
string Dailyrefresh_reamain = "";
int last_time = PlayerPrefs.GetInt("Dayreftimes", 0);
DateTime today = DateTime.Now;
int newDays = today.Day;
string light_refresh_str = PlayerPrefs.GetString("Dailyrefreshnum", "");
if (string.IsNullOrEmpty(light_refresh_str))
{
light_restoredList = new List<int>();
}
else
{
light_restoredList = light_refresh_str.Split(',').Select(int.Parse).ToList();
}
if (light_restoredList.Count < ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links.Count)
{
int targetCount = ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links.Count;
for (int i = light_restoredList.Count; i < targetCount; i++)
{
light_restoredList.Add(0);
}
}
if (last_time == newDays)
{
}
else
{
for (int i = 0; i < light_restoredList.Count; i++)
{
light_restoredList[i] = 0;
}
string str = string.Join(",", light_restoredList);
PlayerPrefs.SetString("Dailyrefreshnum", str);
PlayerPrefs.SetInt("Dayreftimes", newDays);
}
int dark_last_time = PlayerPrefs.GetInt("dark_refreshDay", 0);
string darkWVDailyrefreshtimes_str = "";
string dark_refresh_str = PlayerPrefs.GetString("Darkrefreshnum", "");
if (string.IsNullOrEmpty(dark_refresh_str))
{
dark_restoredList = new List<List<int>>();
}
else
{
dark_restoredList = dark_refresh_str.Split(';').Select(row => row.Split(',').Select(int.Parse).ToList()).ToList();
}
if (dark_restoredList.Count < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList.Count)
{
int targetCount = ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList.Count;
for (int i = dark_restoredList.Count; i < targetCount; i++)
{
dark_restoredList.Add(new List<int>());
}
}
for (int i = 0; i < dark_restoredList.Count; i++)
{
if (ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList.Count > i)
{
int targetCount = ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links.Count;
if (dark_restoredList[i].Count < targetCount)
{
for (int j = dark_restoredList[i].Count; j < targetCount; j++)
{
dark_restoredList[i].Add(0);
}
}
}
}
if (dark_last_time == newDays)
{
}
else
{
for (int i = 0; i < dark_restoredList.Count; i++)
{
for (int j = 0; j < dark_restoredList[i].Count; j++)
{
dark_restoredList[i][j] = 0;
}
}
PlayerPrefs.SetInt("dark_refreshDay", newDays);
PlayerPrefs.SetString("Darkrefreshnum", string.Join(";", dark_restoredList.Select(row => string.Join(",", row))));
}
string light_str = "";
string dark_str = "";
int can_refresh_numbners = 0;
for (int i = 0; i < ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links.Count; i++)
{
if (i != 0)
{
light_str += "|";
}
light_str += ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links[i].url + "#" + ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links[i].weight + "#" + (ConfigSystem_sdk.Instance.SDKConfig.h5Conf.links[i].maxF5Times - light_restoredList[i]);
}
for (int i = 0; i < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList.Count; i++)
{
for (int j = 0; j < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links.Count; j++)
{
if (i != 0 || j != 0)
{
dark_str += "|";
}
dark_str += ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links[j].url + "#" + ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links[j].weight + "#" + (ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links[j].maxF5Times - dark_restoredList[i][j]) +
"#" + ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].links[j].ctProb + "#" + ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].layerId + "#" + ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].offset;
}
}
string darkWVRefreshtime_str = "";
string add_time = "";
string layer_click_probability = "";
for (int i = 0; i < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList.Count; i++)
{
if (i != 0)
{
darkWVRefreshtime_str += "|";
add_time += "|";
layer_click_probability += "|";
}
darkWVRefreshtime_str += ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].f5Interval.min;
darkWVRefreshtime_str += "|";
darkWVRefreshtime_str += ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].f5Interval.max;
add_time += UnityEngine.Random.Range(ConfigSystem_sdk.Instance.SDKConfig.h6Conf.ADClickF5Delay.min, ConfigSystem_sdk.Instance.SDKConfig.h6Conf.ADClickF5Delay.max + 1);
layer_click_probability += ConfigSystem_sdk.Instance.SDKConfig.h6Conf.layerConfList[i].weight;
}
Debug.Log("|||||||||||||||||||||--------------------------------");
Debug.Log(darkWVRefreshtime_str);
Debug.Log(dark_str);
Debug.Log(light_str);
Debug.Log(layer_click_probability);
Debug.Log(add_time);
int reg_days = ConfigSystem_sdk.Instance.GetRegisteredCalendarDaysByUTC(LoginModel_sdk.Instance.reg_time);
bool open_dark_wv = true;
if (ConfigSystem_sdk.Instance.SDKConfig.h6Conf.switchCondition != null)
{
for (int i = 0; i < ConfigSystem_sdk.Instance.SDKConfig.h6Conf.switchCondition.retentionConf.Count; i++)
{
if ((reg_days >= ConfigSystem_sdk.Instance.SDKConfig.h6Conf.switchCondition.retentionConf[i].days.min) &&
(reg_days <= ConfigSystem_sdk.Instance.SDKConfig.h6Conf.switchCondition.retentionConf[i].days.max))
{
if (UnityEngine.Random.Range(0, 100) >= ConfigSystem_sdk.Instance.SDKConfig.h6Conf.switchCondition.retentionConf[i].prob)
{
open_dark_wv = false;
}
break;
}
}
}
Debug.Log(open_dark_wv);
addH5Field(ConfigSystem.GetConfig<CommonModel>().flyCtRate, ConfigSystem.GetConfig<CommonModel>().otherH5switch,
UnityEngine.Random.Range(ConfigSystem_sdk.Instance.SDKConfig.h5Conf.f5Interval.min, ConfigSystem_sdk.Instance.SDKConfig.h5Conf.f5Interval.max + 1), -1, -1
, darkWVRefreshtime_str, "", dark_str, light_str, open_dark_wv, layer_click_probability, add_time);
}
}
}