adwhale_sdk_flutter 2.7.2+6 copy "adwhale_sdk_flutter: ^2.7.2+6" to clipboard
adwhale_sdk_flutter: ^2.7.2+6 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() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  final result = await AdWhaleMediationAds.instance.initialize();
  debugPrint('AdWhale SDK 초기화 결과: $result');
  
  if (result.isSuccess) {
    runApp(const MyApp());
  } else {
    // 초기화 실패 시 에러 화면 표시
    runApp(MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text(
            'SDK 초기화 실패\nstatusCode: ${result.statusCode}\nmessage: ${result.message}',
            textAlign: TextAlign.center,
          ),
        ),
      ),
    ));
  }
}

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,
      ),
    );
  }
}
0
likes
145
points
12
downloads

Publisher

unverified uploader

Weekly Downloads

Adwhale SDK Flutter plugin for integrating Adwhale advertising mediation SDK into Flutter applications.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter, meta, plugin_platform_interface, visibility_detector

More

Packages that depend on adwhale_sdk_flutter

Packages that implement adwhale_sdk_flutter