70 lines
2.5 KiB
Dart
70 lines
2.5 KiB
Dart
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}');
|
||
}
|
||
}
|