qi_yu_helper.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import 'dart:convert';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter_qiyu/qiyu.dart';
  4. import 'package:flutter_qiyu/qy_service_window_params.dart';
  5. import 'package:flutter_qiyu/qy_user_info_params.dart';
  6. import 'package:location/data/consts/build_config.dart';
  7. import 'package:location/sdk/qiyu/qiyu_info_bean.dart';
  8. import '../../resource/string.gen.dart';
  9. import '../../utils/app_info_util.dart';
  10. import '../../utils/atmob_log.dart';
  11. class QiYuHelper {
  12. static String tag = 'QiYuHelper';
  13. QiYuHelper._();
  14. static void init() async {
  15. WidgetsBinding.instance.addPostFrameCallback((_) {
  16. QiYu.registerApp(
  17. appKey: BuildConfig.qiyuKEY,
  18. appName: StringName.appName,
  19. );
  20. });
  21. }
  22. static void openCustomService() {
  23. QYServiceWindowParams serviceWindowParams = QYServiceWindowParams.fromJson({
  24. 'source': {'sourceTitle': '', 'sourceUrl': '', 'sourceCustomInfo': ''},
  25. 'sessionTitle': '客服',
  26. 'groupId': 0,
  27. 'staffId': 0,
  28. 'robotId': 0,
  29. 'robotFirst': false,
  30. 'faqTemplateId': 0,
  31. 'vipLevel': 0,
  32. 'showQuitQueue': true,
  33. 'showCloseSessionEntry': true
  34. });
  35. QiYu.openServiceWindow(serviceWindowParams);
  36. }
  37. static void setUserInfo(String? phone, String serverUserId) async {
  38. List<QiYuInfoBean> data = [
  39. QiYuInfoBean(
  40. index: '1',
  41. key: 'serverUserId',
  42. label: '用户Id',
  43. value: serverUserId,
  44. ),
  45. QiYuInfoBean(
  46. index: '2',
  47. key: 'version',
  48. label: '应用版本',
  49. value: appInfoUtil.appVersionName,
  50. ),
  51. QiYuInfoBean(
  52. index: '3',
  53. key: 'app_name',
  54. label: '应用名称',
  55. value: appInfoUtil.appName,
  56. ),
  57. QiYuInfoBean(
  58. index: '4',
  59. key: 'packageName',
  60. label: '包名',
  61. value: appInfoUtil.packageName,
  62. ),
  63. ];
  64. String dataJson = jsonEncode(data.map((e) => e.toJson()).toList());
  65. AtmobLog.d(tag, 'setUserInfo dataJson: $dataJson');
  66. QYUserInfoParams userInfoParams =
  67. QYUserInfoParams.fromJson({'userId': phone, 'data': dataJson});
  68. try {
  69. await QiYu.setUserInfo(userInfoParams);
  70. AtmobLog.d(tag, 'setUserInfo success');
  71. } catch (error) {
  72. AtmobLog.e(tag, 'setUserInfo error: $error');
  73. }
  74. }
  75. static void logout() async {
  76. await QiYu.logout();
  77. AtmobLog.d(tag, 'logout');
  78. }
  79. }