using JiaZhiQuan.Common.Messaging.Models;
using Newtonsoft.Json;
using System;
using System.Linq;
namespace JiaZhiQuan.Common.Utils
{
public static class DeviceInfoUtils
{
///
/// 解析Device信息
///
///
/// item1:系统,item2:APP版本,item3:机型,item4:市场来源
public static (string, string, string, string) ExtractDevice(string deviceInfo, string channel)
{
string os = string.Empty, // 来源系统
appVersion = string.Empty, // APP版本
phoneModel = string.Empty, // 机型
market = string.Empty;
if (deviceInfo.Contains(UserInvite.ActiveChannel.Android.ToString()) && deviceInfo.Contains("soft_version"))
{
os = UserInvite.ActiveChannel.Android.ToString();
AndroidDeviceInfo android = JsonConvert.DeserializeObject(deviceInfo);
// 版本号是v3.19.3_31这样的格式,数据库只保存3.19
int startIndex = android.soft_version.IndexOf('v') + 1;
int endIndex = android.soft_version.IndexOf('_');
if (startIndex != -1 && endIndex != -1)
{
appVersion = android.soft_version.Substring(startIndex, endIndex - startIndex);
}
phoneModel = android.brand;
market = channel switch
{
"xiaomi" => "小米市场",
"huawei" => "华为市场",
"yingyongbao" => "应用宝",
"baidu" => "百度市场",
"vivo" => "Vivo市场",
"oppo" => "Oppo市场",
"web" => "WEB (Android)",
_ => ""
};
}
else if (deviceInfo.Contains("iPhone") && deviceInfo.Contains("appVersoft_versionsion"))
{
os = UserInvite.ActiveChannel.iOS.ToString();
iOSDeviceInfo ios = JsonConvert.DeserializeObject(deviceInfo);
// 版本号是3.0.1
appVersion = ios.appVersoft_versionsion;
phoneModel = ios.os;
market = "App Store";
}
return (os, appVersion, phoneModel, market);
}
}
}