locator.dart
8.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
import 'package:appframe/data/repositories/message/app_info_handler.dart';
import 'package:appframe/data/repositories/message/audio_player_handler.dart';
import 'package:appframe/data/repositories/message/audio_recorder_handler.dart';
import 'package:appframe/data/repositories/message/choose_file_handler.dart';
import 'package:appframe/data/repositories/message/choose_image_handler.dart';
import 'package:appframe/data/repositories/message/choose_video_handler.dart';
import 'package:appframe/data/repositories/message/clipboard_data_handler.dart';
import 'package:appframe/data/repositories/message/compress_handler.dart';
import 'package:appframe/data/repositories/message/device_info_handler.dart';
import 'package:appframe/data/repositories/message/download_file_handler.dart';
import 'package:appframe/data/repositories/message/image_info_handler.dart';
import 'package:appframe/data/repositories/message/location_handler.dart';
import 'package:appframe/data/repositories/message/network_type_handler.dart';
import 'package:appframe/data/repositories/message/open_document_handler.dart';
import 'package:appframe/data/repositories/message/open_weapp_handler.dart';
import 'package:appframe/data/repositories/message/orientation_handler.dart';
import 'package:appframe/data/repositories/message/save_file_to_disk_handler.dart';
import 'package:appframe/data/repositories/message/save_to_album_handler.dart';
import 'package:appframe/data/repositories/message/scan_code_handler.dart';
import 'package:appframe/data/repositories/message/set_title_handler.dart';
import 'package:appframe/data/repositories/message/storage_handler.dart';
import 'package:appframe/data/repositories/message/upload_file.dart';
import 'package:appframe/data/repositories/message/vibrate_short_handler.dart';
import 'package:appframe/data/repositories/message/video_info_handler.dart';
import 'package:appframe/data/repositories/message/wifi_info_handler.dart';
import 'package:appframe/data/repositories/message/window_info_handler.dart';
import 'package:appframe/data/repositories/wechat_auth_repository.dart';
import 'package:appframe/services/api_service.dart';
import 'package:appframe/services/dispatcher.dart';
import 'package:fluwx/fluwx.dart';
import 'package:get_it/get_it.dart';
import 'package:shared_preferences/shared_preferences.dart';
final getIt = GetIt.instance;
Future<void> setupLocator() async {
/// Fluwx
getIt.registerSingleton<Fluwx>(
await (() async {
Fluwx fluwx = Fluwx();
await fluwx.registerApi(appId: "wx8c32ea248f0c7765", universalLink: "https://univerallink.banxe.cn/link/");
return fluwx;
})(),
);
///SharedPreferences
getIt.registerSingleton<SharedPreferences>(await SharedPreferences.getInstance());
/// 按指令名称注册 message handler
/// 视情况,对大概率会执行的指令直接加载,对概率较低的指令使用懒加载
/// 使用懒加载,用户实际用到了才会进行加载
/// 打开小程序
getIt.registerLazySingleton<MessageHandler>(() => OpenWeappHandler(), instanceName: 'openWeapp');
/// 设备信息
getIt.registerLazySingleton<MessageHandler>(() => DeviceInfoHandler(), instanceName: 'getDeviceInfo');
// 位置信息
getIt.registerLazySingleton<MessageHandler>(() => LocationHandler(), instanceName: 'getLocation');
// 网络信息
getIt.registerLazySingleton<MessageHandler>(() => NetworkTypeHandler(), instanceName: 'getNetworkType');
// wifi信息
getIt.registerLazySingleton<MessageHandler>(() => WifiInfoHandler(), instanceName: 'getWifiInfo');
/// 设备方向
getIt.registerLazySingleton<MessageHandler>(() => OrientationHandler(), instanceName: 'getOrientation');
/// 应用信息
getIt.registerLazySingleton<MessageHandler>(() => AppInfoHandler(), instanceName: 'getAppInfo');
/// 窗口信息
getIt.registerLazySingleton<MessageHandler>(() => WindowInfoHandler(), instanceName: 'getWindowInfo');
/// 本地缓存
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => GetStorageHandler(), instanceName: 'getStorage');
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => SetStorageHandler(), instanceName: 'setStorage');
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => RemoveStorageHandler(), instanceName: 'removeStorage');
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => ClearStorageHandler(), instanceName: 'clearStorage');
/// 剪贴板
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => SetClipboardDataHandler(), instanceName: 'setClipboardData');
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => GetClipboardDataHandler(), instanceName: 'getClipboardData');
/// 选择图片
/// 暂未处理参数:sizeType: string[], // 尺寸类型,可多选,compressed=压缩图,original=原图, 默认['original', 'compressed']
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => ChooseImageHandler(), instanceName: 'chooseImage');
/// 选择视频
getIt.registerLazySingleton<MessageHandler>(() => ChooseVideoHandler(), instanceName: 'chooseVideo');
/// 选择文件
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => ChooseFileHandler(), instanceName: 'chooseFile');
/// 图片信息
getIt.registerLazySingleton<MessageHandler>(() => ImageInfoHandler(), instanceName: 'getImageInfo');
/// 获取视频信息
getIt.registerLazySingleton<MessageHandler>(() => VideoInfoHandler(), instanceName: 'getVideoInfo');
/// 保存文件到客户端文件系统
getIt.registerLazySingleton<MessageHandler>(() => SaveFileToDisKHandler(), instanceName: 'saveFileToDisk');
/// 保存文件/视频到相册
// Android已测试通过
getIt.registerLazySingleton<MessageHandler>(() => SaveToAlbumHandler(), instanceName: 'saveToAlbum');
/// 图片压缩
getIt.registerLazySingleton<MessageHandler>(() => CompressImageHandler(), instanceName: 'compressImage');
/// 视频压缩
getIt.registerLazySingleton<MessageHandler>(() => CompressVideoHandler(), instanceName: 'compressVideo');
/// 打开文档
getIt.registerLazySingleton<MessageHandler>(() => OpenDocumentHandler(), instanceName: 'openDocument');
/// 录音
getIt.registerLazySingleton<MessageHandler>(() => AudioRecorderStartHandler(), instanceName: 'audioRecorderStart');
getIt.registerLazySingleton<MessageHandler>(() => AudioRecorderPauseHandler(), instanceName: 'audioRecorderPause');
getIt.registerLazySingleton<MessageHandler>(() => AudioRecorderResumeHandler(), instanceName: 'audioRecorderResume');
getIt.registerLazySingleton<MessageHandler>(() => AudioRecorderStopHandler(), instanceName: 'audioRecorderStop');
getIt.registerLazySingleton<MessageHandler>(() => AudioRecorderClearHandler(), instanceName: 'audioRecorderClear');
/// 播放
getIt.registerLazySingleton<MessageHandler>(() => AudioPlayHandler(), instanceName: 'audioPlay');
getIt.registerLazySingleton<MessageHandler>(() => AudioPauseHandler(), instanceName: 'audioPause');
getIt.registerLazySingleton<MessageHandler>(() => AudioResumeHandler(), instanceName: 'audioResume');
getIt.registerLazySingleton<MessageHandler>(() => AudioSeekHandler(), instanceName: 'audioSeek');
getIt.registerLazySingleton<MessageHandler>(() => AudioStopHandler(), instanceName: 'audioStop');
getIt.registerLazySingleton<MessageHandler>(() => AudioClearHandler(), instanceName: 'audioClear');
/// 震动
getIt.registerLazySingleton<MessageHandler>(() => VibrateShortHandler(), instanceName: 'vibrateShort');
/// 扫码
getIt.registerLazySingleton<MessageHandler>(() => ScanCodeHandler(), instanceName: 'scanCode');
/// 上传文件
getIt.registerLazySingleton<MessageHandler>(() => UploadFileHandler(), instanceName: 'uploadFile');
/// 下载文件
getIt.registerLazySingleton<MessageHandler>(() => DownloadFileHandler(), instanceName: 'downloadFile');
/// 设置标题和返回按钮
getIt.registerLazySingleton<MessageHandler>(() => SetTitleHandler(), instanceName: 'setTitle');
/// service
getIt.registerLazySingleton<ApiService>(() => ApiService(baseUrl: 'https://dev.banxiaoer.net'));
/// repository
getIt.registerLazySingleton<WechatAuthRepository>(() => WechatAuthRepository());
}