miduo_client/Assets/Plugins/PC/Main/ThinkingPCSDK.cs

295 lines
10 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using ThinkingSDK.PC.Config;
using ThinkingSDK.PC.Constant;
using ThinkingSDK.PC.DataModel;
using ThinkingSDK.PC.Storage;
using ThinkingSDK.PC.Time;
using ThinkingSDK.PC.Utils;
namespace ThinkingSDK.PC.Main
{
public class ThinkingPCSDK
{
private ThinkingPCSDK()
{
}
private static readonly Dictionary<string, ThinkingSDKInstance> Instances = new Dictionary<string, ThinkingSDKInstance>();
private static string CurrentAppid;
private static ThinkingSDKInstance GetInstance(string appid)
{
ThinkingSDKInstance instance;
if (string.IsNullOrEmpty(appid))
{
//ThinkingSDKLogger.Print("current appid is " + CurrentAppid);
instance = Instances[CurrentAppid];
}
else
{
instance = Instances[appid];
}
return instance;
}
public static ThinkingSDKInstance CurrentInstance()
{
ThinkingSDKInstance instance = Instances[CurrentAppid];
return instance;
}
public static ThinkingSDKInstance Init(string appid, string server, ThinkingSDKConfig config = null)
{
if (ThinkingSDKUtil.IsEmptyString(appid))
{
ThinkingSDKLogger.Print("appid is empty");
return null;
}
ThinkingSDKInstance instance = null;
if (Instances.ContainsKey(appid))
{
instance = Instances[appid];
}
if (instance == null)
{
instance = new ThinkingSDKInstance(appid,server,config);
if (string.IsNullOrEmpty(CurrentAppid))
{
CurrentAppid = appid;
}
Instances[appid] = instance;
}
return instance;
}
/// <summary>
/// 设置访客ID
/// </summary>
/// <param name="distinctID"></param>
/// <param name="appid"></param>
public static void Identifiy(string distinctID, string appid ="")
{
GetInstance(appid).Identifiy(distinctID);
}
/// <summary>
/// 获取访客ID
/// </summary>
/// <param name="appid"></param>
/// <returns></returns>
public static string DistinctId(string appid = "")
{
return GetInstance(appid).DistinctId();
}
/// <summary>
/// 设置账号ID
/// </summary>
/// <param name="accountID"></param>
/// <param name="appid"></param>
public static void Login(string accountID,string appid = "")
{
GetInstance(appid).Login(accountID);
}
/// <summary>
/// 获取账号ID
/// </summary>
/// <param name="appid"></param>
/// <returns></returns>
public static string AccountID(string appid = "")
{
return GetInstance(appid).AccountID();
}
/// <summary>
///清空账号ID
/// </summary>
public static void Logout(string appid = "")
{
GetInstance(appid).Logout();
}
/// <summary>
/// 设置自动采集事件
/// </summary>
/// <param name="events"></param>
/// <param name="appid"></param>
public static void EnableAutoTrack(AUTO_TRACK_EVENTS events,string appid = "")
{
GetInstance(appid).EnableAutoTrack(events);
}
public static void Track(string eventName,string appid = "")
{
GetInstance(appid).Track(eventName);
}
public static void Track(string eventName, Dictionary<string, object> properties, string appid = "")
{
GetInstance(appid).Track(eventName,properties);
}
public static void Track(string eventName, Dictionary<string, object> properties, DateTime date, string appid = "")
{
GetInstance(appid).Track(eventName, properties, date);
}
public static void Track(ThinkingSDKEventData analyticsEvent,string appid = "")
{
GetInstance(appid).Track(analyticsEvent);
}
public static void SetSuperProperties(Dictionary<string, object> superProperties,string appid = "")
{
GetInstance(appid).SetSuperProperties(superProperties);
}
public static void UnsetSuperProperty(string propertyKey, string appid = "")
{
GetInstance(appid).UnsetSuperProperty(propertyKey);
}
public static Dictionary<string, object> SuperProperties(string appid="")
{
return GetInstance(appid).SuperProperties();
}
public static Dictionary<string, object> PresetProperties(string appid="")
{
return GetInstance(appid).PresetProperties();
}
public static void ClearSuperProperties(string appid= "")
{
GetInstance(appid).ClearSuperProperties();
}
public static void TimeEvent(string eventName,string appid="")
{
GetInstance(appid).TimeEvent(eventName);
}
public static void UserSet(Dictionary<string, object> properties, string appid = "")
{
GetInstance(appid).UserSet(properties);
}
public static void UserSet(Dictionary<string, object> properties, DateTime dateTime,string appid = "")
{
GetInstance(appid).UserSet(properties, dateTime);
}
public static void UserUnset(string propertyKey,string appid = "")
{
GetInstance(appid).UserUnset(propertyKey);
}
public static void UserUnset(string propertyKey, DateTime dateTime,string appid = "")
{
GetInstance(appid).UserUnset(propertyKey,dateTime);
}
public static void UserUnset(List<string> propertyKeys, string appid = "")
{
GetInstance(appid).UserUnset(propertyKeys);
}
public static void UserUnset(List<string> propertyKeys, DateTime dateTime, string appid = "")
{
GetInstance(appid).UserUnset(propertyKeys,dateTime);
}
public static void UserSetOnce(Dictionary<string, object> properties,string appid = "")
{
GetInstance(appid).UserSetOnce(properties);
}
public static void UserSetOnce(Dictionary<string, object> properties, DateTime dateTime, string appid = "")
{
GetInstance(appid).UserSetOnce(properties,dateTime);
}
public static void UserAdd(Dictionary<string, object> properties, string appid = "")
{
GetInstance(appid).UserAdd(properties);
}
public static void UserAdd(Dictionary<string, object> properties, DateTime dateTime, string appid = "")
{
GetInstance(appid).UserAdd(properties,dateTime);
}
public static void UserAppend(Dictionary<string, object> properties, string appid = "")
{
GetInstance(appid).UserAppend(properties);
}
public static void UserAppend(Dictionary<string, object> properties, DateTime dateTime, string appid = "")
{
GetInstance(appid).UserAppend(properties,dateTime);
}
public static void UserDelete(string appid="")
{
GetInstance(appid).UserDelete();
}
public static void UserDelete(DateTime dateTime,string appid = "")
{
GetInstance(appid).UserDelete(dateTime);
}
public static void SetDynamicSuperProperties(IDynamicSuperProperties dynamicSuperProperties, string appid = "")
{
GetInstance(appid).SetDynamicSuperProperties(dynamicSuperProperties);
}
/*
停止或开启数据上报,默认是开启状态,设置为停止时还会清空本地的访客ID,账号ID,静态公共属性
其中true表示可以上报数据,false表示停止数据上报
**/
public static void OptTracking(bool optTracking,string appid = "")
{
GetInstance(appid).OptTracking(optTracking);
}
//是否暂停数据上报,默认是正常上报状态,其中true表示可以上报数据,false表示暂停数据上报
public static void EnableTracking(bool isEnable, string appid = "")
{
GetInstance(appid).EnableTracking(isEnable);
}
//停止数据上报
public static void OptTrackingAndDeleteUser(string appid = "")
{
GetInstance(appid).OptTrackingAndDeleteUser();
}
/// <summary>
/// 通过时间戳校准时间
/// </summary>
/// <param name="timestamp"></param>
public static void CalibrateTime(long timestamp)
{
ThinkingSDKTimestampCalibration timestampCalibration = new ThinkingSDKTimestampCalibration(timestamp);
foreach (KeyValuePair<string, ThinkingSDKInstance> kv in Instances)
{
kv.Value.SetTimeCalibratieton(timestampCalibration);
}
}
/// <summary>
/// 通过NTP服务器校准时间
/// </summary>
/// <param name="ntpServer"></param>
public static void CalibrateTimeWithNtp(string ntpServer)
{
}
/// <summary>
/// 获取设备ID
/// </summary>
/// <returns></returns>
public static string GetDeviceId()
{
return ThinkingSDKDeviceInfo.DeviceID();
}
/// <summary>
///
/// 是否打开客户端日志
/// </summary>
/// <param name="isEnable"></param>
public static void EnableLog(bool isEnable)
{
ThinkingSDKPublicConfig.SetIsPrintLog(isEnable);
}
public static void SetLibName(string name)
{
ThinkingSDKPublicConfig.SetName(name);
}
public static void SetLibVersion(string versionCode)
{
ThinkingSDKPublicConfig.SetVersion(versionCode);
}
public static string TimeString(DateTime dateTime, string appid = "")
{
return GetInstance(appid).TimeString(dateTime);
}
}
}