base_request.dart 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import 'dart:io';
  2. import 'package:electronic_assistant/utils/app_info_util.dart';
  3. import 'package:flutter/cupertino.dart';
  4. import 'package:json_annotation/json_annotation.dart';
  5. part 'base_request.g.dart';
  6. @JsonSerializable()
  7. class BaseRequest {
  8. /// 平台类型: 1-Android 2-iOS 3-移动H5 4-PC_WEB 5-微信小程序 6-微信小游戏
  9. /// 7-微信公众号 8-抖音小程序 9-抖音小游戏 10-鸿蒙APP
  10. @JsonKey(name: "appPlatform")
  11. late int appPlatform = 0;
  12. /// 操作系统:android、ios、mac、windows、linux、harmony
  13. @JsonKey(name: "os")
  14. late String os = "unknown";
  15. @JsonKey(name: "osVersion")
  16. late String osVersion;
  17. /// 包信息
  18. @JsonKey(name: "packageName")
  19. String? packageName;
  20. @JsonKey(name: "appVersionName")
  21. String? appVersionName;
  22. @JsonKey(name: "appVersionCode")
  23. int? appVersionCode;
  24. /// 渠道信息, iOS没有渠道信息, Android通过渠道包工具获取
  25. @JsonKey(name: "channelName")
  26. String? channelName;
  27. /// 设备信息
  28. /// Android特有
  29. @JsonKey(name: "oaid")
  30. String? oaid;
  31. @JsonKey(name: "aaid")
  32. String? aaid;
  33. @JsonKey(name: "androidId")
  34. String? androidId;
  35. @JsonKey(name: "imei")
  36. String? imei;
  37. @JsonKey(name: "simImei0")
  38. String? simImei0;
  39. @JsonKey(name: "simImei1")
  40. String? simImei1;
  41. /// iOS特有
  42. @JsonKey(name: "idfa")
  43. String? idfa;
  44. @JsonKey(name: "idfv")
  45. String? idfv;
  46. /// 公共设备信息
  47. @JsonKey(name: "machineId")
  48. String? machineId;
  49. @JsonKey(name: "brand")
  50. String? brand;
  51. @JsonKey(name: "model")
  52. String? model;
  53. @JsonKey(name: "mac")
  54. String? mac;
  55. @JsonKey(name: "wifiName")
  56. String? wifiName;
  57. /// 地理位置信息
  58. @JsonKey(name: "region")
  59. String? region;
  60. @JsonKey(name: "locLng")
  61. double? locLng;
  62. @JsonKey(name: "locLat")
  63. double? locLat;
  64. BaseRequest() {
  65. initPlatformOS();
  66. initPackageInfo();
  67. initChannelInfo();
  68. initDeviceInfo();
  69. }
  70. Map<String, dynamic> toJson() => _$BaseRequestToJson(this);
  71. void initPlatformOS() {
  72. if (Platform.isAndroid) {
  73. appPlatform = 1;
  74. os = "android";
  75. } else if (Platform.isIOS) {
  76. appPlatform = 2;
  77. os = "ios";
  78. } else if (Platform.isMacOS) {
  79. os = "mac";
  80. } else if (Platform.isWindows) {
  81. os = "windows";
  82. } else if (Platform.isLinux) {
  83. os = "linux";
  84. } else if (Platform.isFuchsia) {
  85. os = "fuchsia";
  86. }
  87. osVersion = Platform.operatingSystemVersion;
  88. debugPrint("os: $os, osVersion: $osVersion");
  89. }
  90. void initPackageInfo() {
  91. packageName = appInfoUtil.packageName;
  92. appVersionName = appInfoUtil.appVersionName;
  93. appVersionCode = appInfoUtil.appVersionCode;
  94. }
  95. void initChannelInfo() {
  96. channelName = "";
  97. }
  98. void initDeviceInfo() {}
  99. }