miduo_client/Assets/Plugins/PC/Utils/ThinkingSDKUtil.cs

110 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using ThinkingSDK.PC.Config;
using ThinkingSDK.PC.Constant;
using ThinkingSDK.PC.Storage;
namespace ThinkingSDK.PC.Utils
{
public class ThinkingSDKUtil
{
public ThinkingSDKUtil()
{
}
/*
*判断是否为有效URL
*/
public static bool IsValiadURL(string url)
{
return !(url == null || url.Length == 0 || !url.Contains("http") || !url.Contains("https"));
}
/*
* 判断字符串是否为空
*/
public static bool IsEmptyString(string str)
{
return (str == null || str.Length == 0);
}
public static Dictionary<string, object> DeviceInfo()
{
Dictionary<string, object> deviceInfo = new Dictionary<string, object>();
deviceInfo[ThinkingSDKConstant.DEVICE_ID] = ThinkingSDKDeviceInfo.DeviceID();
deviceInfo[ThinkingSDKConstant.LIB_VERSION] = ThinkingSDKAppInfo.LibVersion();
//deviceInfo[ThinkingSDKConstant.CARRIER] = ThinkingSDKDeviceInfo.Carrier();
deviceInfo[ThinkingSDKConstant.LIB] = ThinkingSDKAppInfo.LibName();
deviceInfo[ThinkingSDKConstant.OS] = ThinkingSDKDeviceInfo.OS();
deviceInfo[ThinkingSDKConstant.SCREEN_HEIGHT] = ThinkingSDKDeviceInfo.ScreenHeight();
deviceInfo[ThinkingSDKConstant.SCREEN_WIDTH] = ThinkingSDKDeviceInfo.ScreenWidth();
deviceInfo[ThinkingSDKConstant.MANUFACTURE] = ThinkingSDKDeviceInfo.Manufacture();
deviceInfo[ThinkingSDKConstant.DEVICE_MODEL] = ThinkingSDKDeviceInfo.DeviceModel();
deviceInfo[ThinkingSDKConstant.SYSTEM_LANGUAGE] = ThinkingSDKDeviceInfo.MachineLanguage();
deviceInfo[ThinkingSDKConstant.OS_VERSION] = ThinkingSDKDeviceInfo.OSVersion();
deviceInfo[ThinkingSDKConstant.APP_VERSION] = ThinkingSDKAppInfo.AppVersion();
deviceInfo[ThinkingSDKConstant.NETWORK_TYPE] = ThinkingSDKDeviceInfo.NetworkType();
deviceInfo[ThinkingSDKConstant.APP_BUNDLEID] = ThinkingSDKAppInfo.AppIdentifier();
return deviceInfo;
}
//随机数持久化,作为访客ID的备选
public static string RandomID()
{
string randomID = (string)ThinkingSDKFile.GetData(ThinkingSDKConstant.RANDOM_ID, typeof(string));
if (string.IsNullOrEmpty(randomID))
{
randomID = System.Guid.NewGuid().ToString("N");
ThinkingSDKFile.SaveData(ThinkingSDKConstant.RANDOM_ID, randomID);
}
return randomID;
}
//获取时区偏移
public static double ZoneOffset(DateTime dateTime, TimeZoneInfo timeZone)
{
TimeSpan timeSpan = timeZone.BaseUtcOffset;
try
{
if (timeZone.IsDaylightSavingTime(dateTime))
{
TimeSpan timeSpan1 = TimeSpan.FromHours(1);
timeSpan = timeSpan.Add(timeSpan1);
}
}
catch (Exception e)
{
ThinkingSDKLogger.Print("ZoneOffset: " + e.Message);
}
return timeSpan.TotalHours;
}
//时间格式化
public static string FormatDate(DateTime dateTime, TimeZoneInfo timeZone)
{
DateTime univDateTime = dateTime.ToUniversalTime();
TimeSpan timeSpan = timeZone.BaseUtcOffset;
try
{
if (timeZone.IsDaylightSavingTime(dateTime))
{
TimeSpan timeSpan1 = TimeSpan.FromHours(1);
timeSpan = timeSpan.Add(timeSpan1);
}
}
catch (Exception e)
{
ThinkingSDKLogger.Print("FormatDate: " + e.Message);
}
DateTime dateNew = univDateTime + timeSpan;
return string.Format(ThinkingSDKConstant.TIME_PATTERN, dateNew);
}
//向Dictionary添加Dictionary
public static void AddDictionary(Dictionary<string, object> originalDic, Dictionary<string, object> subDic)
{
foreach (KeyValuePair<string, object> kv in subDic)
{
originalDic[kv.Key] = kv.Value;
}
}
}
}