petsHero-AI/lib/main.dart

70 lines
2.5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:adjust_sdk/adjust_attribution.dart';
import 'package:adjust_sdk/adjust_config.dart';
import 'package:adjust_sdk/adjust.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'app.dart';
import 'core/auth/auth_service.dart';
import 'core/log/app_logger.dart';
import 'core/referrer/referrer_service.dart';
import 'core/theme/app_colors.dart';
import 'features/recharge/google_play_purchase_service.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
_initAdjust();
ReferrerService.init();
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarColor: AppColors.surface,
statusBarIconBrightness: Brightness.dark,
statusBarBrightness: Brightness.light,
),
);
// 先启动登录,确保首次构建时 loginComplete 可被监听
AuthService.init();
runApp(const App());
// 尽早订阅 purchaseStream否则未确认订单不会出现在 queryPastPurchases 中,补单会为空
if (defaultTargetPlatform == TargetPlatform.android) {
GooglePlayPurchaseService.startPendingPurchaseListener();
}
// 登录完成后执行谷歌支付补单(未核销订单上报服务端并 completePurchase
AuthService.loginComplete.then((_) => GooglePlayPurchaseService.runOrderRecovery());
}
void _initAdjust() {
const appToken = '2z2mly0afgqo';
final config = AdjustConfig(
appToken,
kDebugMode ? AdjustEnvironment.sandbox : AdjustEnvironment.production,
);
if (kDebugMode) {
config.logLevel = AdjustLogLevel.verbose;
}
config.attributionCallback = _onAdjustAttribution;
Adjust.initSdk(config);
}
final _adjustLog = AppLogger('Adjust');
void _onAdjustAttribution(AdjustAttribution attribution) {
_adjustLog.d('归因信息: '
'trackerToken=${attribution.trackerToken}, '
'trackerName=${attribution.trackerName}, '
'network=${attribution.network}, '
'campaign=${attribution.campaign}, '
'adgroup=${attribution.adgroup}, '
'creative=${attribution.creative}, '
'clickLabel=${attribution.clickLabel}, '
'costType=${attribution.costType}, '
'costAmount=${attribution.costAmount}, '
'costCurrency=${attribution.costCurrency}, '
'fbInstallReferrer=${attribution.fbInstallReferrer}');
if (attribution.jsonResponse != null &&
attribution.jsonResponse!.isNotEmpty) {
_adjustLog.d('归因 jsonResponse: ${attribution.jsonResponse}');
}
}