import 'dart:convert'; import 'package:client_proxy_framework/client_proxy_framework.dart'; import 'package:crypto/crypto.dart' show md5; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/foundation.dart'; import '../user/user_state.dart'; class AppAuthCallbacks implements AuthServiceCallbacks { @override Future getDeviceId() async { final deviceInfo = DeviceInfoPlugin(); switch (defaultTargetPlatform) { case TargetPlatform.android: final android = await deviceInfo.androidInfo; return android.id; case TargetPlatform.iOS: final ios = await deviceInfo.iosInfo; return ios.identifierForVendor ?? 'ios-unknown'; default: return 'device-${DateTime.now().millisecondsSinceEpoch}'; } } @override String computeSign(String deviceId) { return md5.convert(utf8.encode(deviceId)).toString().toUpperCase(); } @override void onLoginSuccess(FastLoginResponse data) { if (data.userId != null) UserState.setUserId(data.userId!); if (data.credits != null) UserState.setCredits(data.credits!); if (data.avatar != null) UserState.setAvatar(data.avatar!); if (data.userName != null) UserState.setUserName(data.userName!); } @override void onCommonInfoLoaded(CommonInfoResponse data) { if (data.credits != null) UserState.setCredits(data.credits!); if (data.avatar != null) UserState.setAvatar(data.avatar!); if (data.userName != null) UserState.setUserName(data.userName!); } @override void onLoginFailed(String msg) { debugPrint('[AuthService] Login failed: $msg'); } } /// 应用侧登录封装;Adjust 归因桥已由框架 [FrameworkAuthService.init] 默认注册。 class AuthService { static final _authCallbacks = AppAuthCallbacks(); static Future init() async { FrameworkAuthService.init(_authCallbacks); await FrameworkAuthService.start(); } static Future get loginComplete => FrameworkAuthService.loginComplete; }