Flutter广告收益插件flutter_bucksapp_sdk的使用

Flutter广告收益插件flutter_bucksapp_sdk的使用

Bucksapp

Pub Package

功能特性

  • 仪表盘
  • 交易记录
  • 预算管理
  • 定期支付
  • 报告

使用指南

安装

pubspec.yaml 文件中添加以下依赖:

dependencies:
  flutter_bucksapp_sdk: ^0.0.10

然后运行 flutter pub get 来获取该包。

基本设置

flutter_bucksapp_sdk 需要你提供 apiKeyuuid

  • apiKey 是访问服务所需的密钥。
  • uuid 是用户标识符,用于查询其数据。
  • environment 是实现环境。
  • language 是服务实现的语言。

示例代码:

Bucksapp(
  apiKey: '<API_KEY>',
  uuid: '<UUID>',
  environment: 'development',
  language: 'en'
)

完整示例

以下是一个完整的示例代码,展示了如何在Flutter应用中集成 flutter_bucksapp_sdk

main.dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_bucksapp_sdk/flutter_bucksapp_sdk.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  if (Platform.isAndroid) {
    await AndroidInAppWebViewController.setWebContentsDebuggingEnabled(true);

    var swAvailable = await AndroidWebViewFeature.isFeatureSupported(
        AndroidWebViewFeature.SERVICE_WORKER_BASIC_USAGE);
    var swInterceptAvailable = await AndroidWebViewFeature.isFeatureSupported(
        AndroidWebViewFeature.SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST);

    if (swAvailable && swInterceptAvailable) {
      AndroidServiceWorkerController serviceWorkerController =
          AndroidServiceWorkerController.instance();

      serviceWorkerController.serviceWorkerClient = AndroidServiceWorkerClient(
        shouldInterceptRequest: (request) async {
          return null;
        },
      );
    }
  }

  await dotenv.load(fileName: ".env");
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Demo',
      supportedLocales: const [
        Locale('en', ''),
        Locale('es', ''),
      ],
      theme: ThemeData(
          primarySwatch: const MaterialColor(0xFF2C5597, <int, Color>{
        50: Color(0xFFE6EBF3),
        100: Color(0xFFC0CCE0),
        200: Color(0xFF96AACB),
        300: Color(0xFF6B88B6),
        400: Color(0xFF4C6FA7),
        500: Color(0xFF2C5597),
        600: Color(0xFF274E8F),
        700: Color(0xFF214484),
        800: Color(0xFF1B3B7A),
        900: Color(0xFF102A69),
      })),
      routes: <String, WidgetBuilder>{
        '/': (BuildContext context) => const MyHomePage(title: 'Demo'),
        '/simulator': (BuildContext context) => const Simulator(),
      },
    );
  }
}

class MyHomePage extends StatelessWidget {
  final String title;
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final text = '''
¡Bienvenido a la demo de BucksApp! 

Esta app le demuestrá cómo nuestra herramienta puede lucir integrada a su aplicación bancaria. 

(Los datos utilizados son solo de ejemplo)

''';

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(
          title,
          style: const TextStyle(color: Colors.white),
        ),
      ),
      body: Stack(
        children: [
          Padding(
            padding:
                const EdgeInsets.symmetric(vertical: 64.0, horizontal: 16.0),
            child: Column(
              children: [
                const Padding(
                  padding: EdgeInsets.all(8.0),
                  child: Text(
                    "Lorem Ipsum Dolot Est",
                    style: TextStyle(fontSize: 18, fontWeight: FontWeight.w700),
                  ),
                ),
                Flex(
                  direction: Axis.horizontal,
                  children: [
                    const Expanded(
                      child: Card(
                        color: Colors.blue,
                        child: Padding(
                          padding: EdgeInsets.all(48.0),
                          child: Text(''),
                        ),
                      ),
                    ),
                    const Expanded(
                      child: Card(
                        color: Colors.blue,
                        child: Padding(
                          padding: EdgeInsets.all(48.0),
                          child: Text(''),
                        ),
                      ),
                    ),
                  ],
                ),
                Flex(
                  direction: Axis.horizontal,
                  children: [
                    const Expanded(
                      child: Card(
                        color: Colors.blue,
                        child: Padding(
                          padding: EdgeInsets.all(48.0),
                          child: Text(''),
                        ),
                      ),
                    ),
                    const Expanded(
                      child: Card(
                        color: Colors.blue,
                        child: Padding(
                          padding: EdgeInsets.all(48.0),
                          child: Text(''),
                        ),
                      ),
                    ),
                  ],
                )
              ],
            ),
          ),
          Container(
            color: const Color(0xE5E5E5FF),
            child: Center(
                child: Padding(
              padding: const EdgeInsets.all(64.0),
              child: Card(
                color: Theme.of(context).primaryColor,
                elevation: 20,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(20),
                ),
                child: Flex(
                  direction: Axis.vertical,
                  mainAxisSize: MainAxisSize.min,
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  children: [
                    Padding(
                      padding: const EdgeInsets.all(24.0),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: [
                          SvgPicture.asset('icons/Logo.svg'),
                          const Text(
                            "DEMO",
                            style: TextStyle(color: Colors.white),
                          )
                        ],
                      ),
                    ),
                    Container(
                      decoration: const BoxDecoration(
                          borderRadius: BorderRadius.only(
                              bottomRight: Radius.circular(20),
                              bottomLeft: Radius.circular(20)),
                          color: Colors.white),
                      child: Padding(
                        padding: const EdgeInsets.all(19.0),
                        child: Text(
                          text,
                          textAlign: TextAlign.center,
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            )),
          ),
          const Positioned(bottom: 0, right: 32, child: Clip())
        ],
      ),
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed, // This is all you need!
        onTap: (int index) {
          if (index == 3) Navigator.of(context).pushNamed('/simulator');
        },
        items: const [
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: 'Inicio',
          ),
          BottomNavigationBarItem(
              icon: Icon(Icons.swap_horiz), label: 'Transferir'),
          BottomNavigationBarItem(
              icon: Icon(Icons.payment), label: 'Pagar'),
          BottomNavigationBarItem(
              icon: Icon(Icons.account_balance), label: 'Mis Finanzas'),
        ],
      ),
    );
  }
}

class Simulator extends StatelessWidget {
  const Simulator({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container(
      color: Theme.of(context).primaryColor,
      child: SafeArea(
        child: LayoutBuilder(builder: (context, constraints) {
          return Scaffold(
            backgroundColor: Theme.of(context).primaryColor,
            body: SingleChildScrollView(
              child: SizedBox(
                  height: constraints.maxHeight,
                  width: constraints.maxWidth,
                  child: Bucksapp(
                    apiKey: dotenv.get('API_KEY', fallback: ''),
                    uuid: dotenv.get('UUID', fallback: ''),
                    environment: dotenv.get('ENV', fallback: ''),
                    language: 'es',
                  )),
            ),
          );
        }),
      ),
    );
  }
}

class Clip extends StatelessWidget {
  const Clip({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Stack(
      children: [
        SvgPicture.asset(
          'icons/clip.svg',
        ),
        const SizedBox(
          width: 150,
          height: 80,
          child: Padding(
            padding: EdgeInsets.symmetric(vertical: 24.0, horizontal: 24.0),
            child: Text(
              'Tocá acá para empezar',
              style: TextStyle(
                  color: Colors.white,
                  fontWeight: FontWeight.w400,
                  fontSize: 14),
              textAlign: TextAlign.center,
            ),
          ),
        )
      ],
    );
  }
}

更多关于Flutter广告收益插件flutter_bucksapp_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter广告收益插件flutter_bucksapp_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_bucksapp_sdk 是一个用于在 Flutter 应用中集成广告并实现收益的插件。通过这个插件,你可以轻松地在应用中展示广告,并根据用户的互动获得收益。以下是如何使用 flutter_bucksapp_sdk 的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_bucksapp_sdk 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_bucksapp_sdk: ^1.0.0  # 请使用最新的版本号

然后运行 flutter pub get 来安装依赖。

2. 初始化 SDK

在你的应用的 main.dart 文件中,初始化 flutter_bucksapp_sdk

import 'package:flutter/material.dart';
import 'package:flutter_bucksapp_sdk/flutter_bucksapp_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 SDK
  await FlutterBucksappSdk.initialize(
    appId: 'YOUR_APP_ID',  // 替换为你的应用 ID
    isDebug: true,  // 调试模式,发布时设置为 false
  );
  
  runApp(MyApp());
}

3. 展示广告

你可以在应用的任何地方展示广告。以下是一个展示横幅广告的示例:

import 'package:flutter/material.dart';
import 'package:flutter_bucksapp_sdk/flutter_bucksapp_sdk.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Bucksapp SDK Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Welcome to Flutter Bucksapp SDK!'),
            SizedBox(height: 20),
            // 展示横幅广告
            FlutterBucksappBannerAd(
              adUnitId: 'YOUR_BANNER_AD_UNIT_ID',  // 替换为你的横幅广告单元 ID
              adSize: AdSize.banner,
              listener: (AdEvent event) {
                print('Banner Ad Event: $event');
              },
            ),
          ],
        ),
      ),
    );
  }
}

4. 展示插屏广告

你也可以展示插屏广告:

import 'package:flutter/material.dart';
import 'package:flutter_bucksapp_sdk/flutter_bucksapp_sdk.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Bucksapp SDK Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Welcome to Flutter Bucksapp SDK!'),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                // 加载并展示插屏广告
                await FlutterBucksappInterstitialAd.load(
                  adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID',  // 替换为你的插屏广告单元 ID
                  listener: (AdEvent event) {
                    print('Interstitial Ad Event: $event');
                  },
                );
              },
              child: Text('Show Interstitial Ad'),
            ),
          ],
        ),
      ),
    );
  }
}

5. 展示激励视频广告

激励视频广告通常用于奖励用户观看广告:

import 'package:flutter/material.dart';
import 'package:flutter_bucksapp_sdk/flutter_bucksapp_sdk.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Bucksapp SDK Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Welcome to Flutter Bucksapp SDK!'),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                // 加载并展示激励视频广告
                await FlutterBucksappRewardedAd.load(
                  adUnitId: 'YOUR_REWARDED_AD_UNIT_ID',  // 替换为你的激励视频广告单元 ID
                  listener: (AdEvent event) {
                    print('Rewarded Ad Event: $event');
                  },
                );
              },
              child: Text('Show Rewarded Ad'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部