44 lines
1.5 KiB
Dart
Executable File
44 lines
1.5 KiB
Dart
Executable File
import 'dart:async';
|
|
import 'dart:convert';
|
|
import 'dart:ui';
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get_connect/http/src/request/request.dart';
|
|
import 'package:star_lock/login/login/entity/LoginData.dart';
|
|
|
|
import '../tools/platform_info_services.dart';
|
|
import '../tools/storage.dart';
|
|
import '../tools/store_service.dart';
|
|
import '../translations/app_dept.dart';
|
|
|
|
//公共获取UA
|
|
String getUserAgent() {
|
|
//赋值变量方便调试
|
|
final String ua =
|
|
'StarLock/${PlatformInfoService.to?.info.version}/${PlatformInfoService.to?.info.buildNumber}/${GetPlatform.isAndroid ? 'Android' : 'iOS'}';
|
|
return ua;
|
|
}
|
|
|
|
FutureOr<Request> requestInterceptor(Request request) async {
|
|
request.headers['User-Agent'] = getUserAgent();
|
|
request.headers['Accept-Language'] = getLanguageCode(); // StoreService.to.getLanguageCode()
|
|
// request.headers['Content-Type'] = 'application/json';
|
|
// request.headers['token'] = StoreService.to.userToken!;
|
|
String? xToken = '';
|
|
final data = await Storage.getString(saveUserLoginData);
|
|
if (data != null && data.isNotEmpty) {
|
|
xToken = LoginData.fromJson(jsonDecode(data)).accessToken;
|
|
}
|
|
request.headers['Authorization'] = "Bearer ${xToken ?? ''}";
|
|
return request;
|
|
}
|
|
|
|
|
|
String getLanguageCode() {
|
|
final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty
|
|
? appDept.deptSupportedLocales
|
|
.where((Locale element) =>
|
|
element.languageCode == StoreService.to.getLanguageCode())
|
|
.first
|
|
: Get.locale!;// Get.deviceLocale;
|
|
return locale.toLanguageTag();
|
|
} |