locator.dart
8.86 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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
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/crop_image_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/go_login_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_link_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';
import 'dart:io' show Platform;
final getIt = GetIt.instance;
Future<void> setupLocator() async {
/// Fluwx
getIt.registerSingleton<Fluwx>(
await (() async {
Fluwx fluwx = Fluwx();
if (Platform.isAndroid || Platform.isIOS) {
await fluwx.registerApi(appId: "wx8c32ea248f0c7765", universalLink: "https://dev.banxiaoer.net/path/to/wechat/");
}
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>(() => CropImageHandler(), instanceName: 'cropImage');
/// 震动
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');
/// 新路由打开链接
getIt.registerLazySingleton<MessageHandler>(() => OpenLinkHandler(), instanceName: 'openlink');
/// 登录
getIt.registerLazySingleton<MessageHandler>(() => GoLoginHandler(), instanceName: 'goLogin');
/// service
getIt.registerLazySingleton<ApiService>(() => ApiService(baseUrl: 'https://dev.banxiaoer.net'));
/// repository
getIt.registerLazySingleton<WechatAuthRepository>(() => WechatAuthRepository());
}