event_handler.dart 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import 'package:airbridge_flutter_sdk/airbridge_flutter_sdk.dart';
  2. import 'package:clean/data/consts/event_report_id.dart';
  3. import 'package:clean/data/repositories/event_repository.dart';
  4. import 'package:clean/sdk/umeng/umeng_helper.dart';
  5. import '../data/consts/constants.dart';
  6. import '../utils/toast_util.dart';
  7. class EventHandler {
  8. static const bool isShowToast = false;
  9. EventHandler._();
  10. static void report(String eventId, {Map<String, dynamic>? params}) {
  11. if (isShowToast) {
  12. if (params == null) {
  13. ToastUtil.show(eventId);
  14. } else {
  15. ToastUtil.show('$eventId ${params.toString()}');
  16. }
  17. }
  18. Airbridge.trackEvent(category: eventId, customAttributes: params);
  19. var time = DateTime.now().millisecondsSinceEpoch;
  20. List<Map<String, dynamic>> es = <Map<String, dynamic>>[];
  21. Map<String, dynamic> esItem = <String, dynamic>{};
  22. esItem["ty"] = "track";
  23. esItem["ev"] = eventId;
  24. esItem["ti"] = time;
  25. es.add(esItem);
  26. if (params != null) {
  27. eventRepository.eventPush(time, es, pr: params);
  28. } else {
  29. eventRepository.eventPush(time, es);
  30. }
  31. // UmengHelper.onEvent(eventId, params ?? {"defaultKey": "default"});
  32. }
  33. static void reportPay(
  34. int priceFen, String orderId, String itemName, int payWay) {
  35. if (isShowToast) {
  36. String? payWayStr;
  37. switch (payWay) {
  38. case PayMethod.alipay:
  39. payWayStr = '支付宝';
  40. break;
  41. case PayMethod.wechat:
  42. payWayStr = '微信';
  43. break;
  44. case PayMethod.apple:
  45. payWayStr = '苹果';
  46. break;
  47. }
  48. ToastUtil.show(
  49. 'PAY: 金额:$priceFen 订单号:$orderId 商品名:$itemName 支付方式:$payWayStr');
  50. }
  51. // UmengHelper.onEvent(EventId.event_02007, {"price": priceFen, "orderId": orderId, "itemName": itemName, "payWay": payWay});
  52. var time = DateTime.now().millisecondsSinceEpoch;
  53. List<Map<String, dynamic>> es = <Map<String, dynamic>>[];
  54. Map<String, dynamic> esItem = <String, dynamic>{};
  55. esItem["ty"] = "track";
  56. esItem["ev"] = "\$payment";
  57. esItem["ti"] = time;
  58. es.add(esItem);
  59. Map<String, dynamic> params = <String, dynamic>{};
  60. params["\$pitem"] = itemName;
  61. params["\$pmon"] = orderId;
  62. params["\$pcur"] = "USD";
  63. params["\$pamt"] = priceFen;
  64. params["\$pmtd"] = "appstore";
  65. eventRepository.eventPush(time, es, pr: params);
  66. }
  67. // 首次启动应用
  68. static void pushInstall() {
  69. if (isFirstIntoApp()) {
  70. var time = DateTime.now().millisecondsSinceEpoch;
  71. List<Map<String, dynamic>> es = <Map<String, dynamic>>[];
  72. Map<String, dynamic> esItem = <String, dynamic>{};
  73. esItem["ty"] = "track";
  74. esItem["ev"] = "\$install";
  75. esItem["ti"] = time;
  76. es.add(esItem);
  77. eventRepository.eventPush(time, es);
  78. }
  79. }
  80. }