initStat function
Implementation
initStat(String appName, String appVersion) async {
if (!needStat)
return;
if (_initialized)
return;
_initialized = true;
if (kIsWeb) {
html.window.onBeforeUnload.listen((event) async {
addPoint("main_end");
});
html.document.addEventListener("visibilitychange", ((event) async{
if (html.document.visibilityState == 'visible') {
addPoint("background_end");
} else {
addPoint("background_start");
}
}));
}
_statData.appName = appName;
_statData.appVersion = appVersion;
try{
final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
if (kIsWeb){
WebBrowserInfo _deviceData = await deviceInfoPlugin.webBrowserInfo;
_statData.isWeb = true;
_statData.userAgent = "${_deviceData.userAgent}";
// _statData.userAgent = "${_deviceData.vendor} ${_deviceData.userAgent} ${_deviceData.hardwareConcurrency}";
// hardwareConcurrency - the number of logical processors available to run threads on the user's computer.
// _deviceData.vendor - Either "Google Inc.", "Apple Computer, Inc.", or (in Firefox) the empty string.
/*
if (sUsrAg.indexOf("Firefox") > -1) {
sBrowser = "Mozilla Firefox";
// "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"
} else if (sUsrAg.indexOf("SamsungBrowser") > -1) {
sBrowser = "Samsung Internet";
// "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36
} else if (sUsrAg.indexOf("Opera") > -1 || sUsrAg.indexOf("OPR") > -1) {
sBrowser = "Opera";
// "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106"
} else if (sUsrAg.indexOf("Trident") > -1) {
sBrowser = "Microsoft Internet Explorer";
// "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko"
} else if (sUsrAg.indexOf("Edge") > -1) {
sBrowser = "Microsoft Edge (Legacy)";
// "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
} else if (sUsrAg.indexOf("Edg") > -1) {
sBrowser = "Microsoft Edge (Chromium)";
// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64
} else if (sUsrAg.indexOf("Chrome") > -1) {
sBrowser = "Google Chrome or Chromium";
// "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36"
} else if (sUsrAg.indexOf("Safari") > -1) {
sBrowser = "Apple Safari";
// "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 980x1306"
} else {
sBrowser = "unknown";
}
*/
}else{
if (Platform.isAndroid) {
AndroidDeviceInfo _deviceData = await deviceInfoPlugin.androidInfo;
_statData.isAndroid = true;
if (_deviceData.isPhysicalDevice != null)
_statData.isPhysicalDevice = _deviceData.isPhysicalDevice!;
_statData.androidVer = "${_deviceData.version.release}";
if (_deviceData.androidId != null)
_statData.androidId = _deviceData.androidId!;
}else{
if (Platform.isIOS) {
IosDeviceInfo _deviceData = await deviceInfoPlugin.iosInfo;
if (needDebugText)
print("identifierForVendor=${_deviceData.identifierForVendor}"); // уникальный идентифер
if (needDebugText)
print("isPhysicalDevice=${_deviceData.isPhysicalDevice}");
}else{
WindowsDeviceInfo _deviceData = await deviceInfoPlugin.windowsInfo;
if (Platform.isWindows){
_statData.isWindows = true;
_statData.computerName = _deviceData.computerName;
_statData.numberOfCores = _deviceData.numberOfCores;
_statData.systemMemoryInMegabytes = _deviceData.systemMemoryInMegabytes;
}
}
}
}
}catch(ex){
//_addStat();
}
await addPoint("main_start");
_sendLocalSaved();
}