adwhale_sdk_flutter 2.7.2+2
adwhale_sdk_flutter: ^2.7.2+2 copied to clipboard
Adwhale SDK Flutter plugin for integrating Adwhale advertising mediation SDK into Flutter applications.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:adwhale_sdk_flutter/adwhale_sdk_flutter.dart';
import 'guide_sample.dart';
import 'advanced_nativead.dart';
import 'advanced_appopenad.dart';
import 'advanced_banner.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
AdWhaleMediationAds.instance.initialize();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: MainMenuPage(),
);
}
}
/// QA 샘플앱(`activity_main.xml`)의 메인 화면과 동일한 구성을 가진 Flutter 메인 메뉴.
class MainMenuPage extends StatelessWidget {
const MainMenuPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
_buildCenterButton(
context,
text: '기본 배너, 전면, 보상형, 네이티브, 앱오프닝 테스트',
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const GuideSamplePage()),
);
},
),
const SizedBox(height: 12),
_buildCenterButton(
context,
text: '고급 배너 테스트',
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const AdvancedBannerPage()),
);
},
),
const SizedBox(height: 12),
_buildCenterButton(
context,
text: '고급 네이티브광고 테스트',
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const AdvancedNativeAdPage()),
);
},
),
const SizedBox(height: 12),
_buildCenterButton(
context,
text: '고급 앱오프닝 테스트',
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const AdvancedAppOpenAdPage()),
);
},
),
// NOTE: 숨김 처리 (요청: '고급 전면 테스트')
// _buildCenterButton(...),
// NOTE: 숨김 처리 (요청: '고급 보상형전면 테스트')
// _buildCenterButton(...),
// NOTE: 숨김 처리 (요청: '비UI 스레드 테스트')
// _buildCenterButton(...),
],
),
),
),
);
}
Widget _buildCenterButton(
BuildContext context, {
required String text,
required VoidCallback onPressed,
}) {
return ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF6739F5), // 스크린샷과 비슷한 보라색
foregroundColor: Colors.white, // 텍스트/아이콘 색상
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
textStyle: const TextStyle(fontSize: 13),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4),
),
),
child: Text(
text,
textAlign: TextAlign.center,
),
);
}
}