Flutter插件yodo1mas的使用方法

Flutter插件yodo1mas的使用方法

本文档介绍了如何在Flutter项目中集成Yodo1 MAS (Managed Ad Service)插件。请注意,以下内容基于插件名称进行推测。

Flutter插件yodo1mas开始使用

请参阅官方文档以获取更多详细信息:

示例代码

main.dart

import 'dart:developer';
import 'dart:io';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:yodo1mas/Yodo1MasNativeAd.dart';
import 'package:yodo1mas/Yodo1MasBannerAd.dart';
import 'package:yodo1mas/yodo1mas.dart';

void main() {
  runApp(const MyApp());
}

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';

  [@override](/user/override)
  void initState() {
    super.initState();
    
    // 初始化Yodo1 MAS插件
    Yodo1MAS.instance.init("YOUR_APP_ID", false, (successful) {
      if (successful) {
        log("初始化成功!");
      } else {
        log("初始化失败!");
      }
    });

    // 显示广告报告对话框
    Yodo1MAS.instance.showReportAdDialog();

    // 设置奖励监听器
    Yodo1MAS.instance.setRewardListener((event, message) {
      switch(event) {
        case Yodo1MAS.AD_EVENT_OPENED:
          log('RewardVideo AD_EVENT_OPENED');
          break;
        case Yodo1MAS.AD_EVENT_ERROR:
          log('RewardVideo AD_EVENT_ERROR' + message);
          break;
        case Yodo1MAS.AD_EVENT_CLOSED:
          log('RewardVideo finally? AD_EVENT_CLOSED');
          givereward();
          break;
        case Yodo1MAS.AD_EVENT_EARNED:
          log("====================================");
          log('RewardVideo AD_EVENT_EARNED');
          break;
      }
    });

    // 初始化平台状态
    initPlatformState();
  }

  void givereward() {
    // 处理奖励逻辑
  }

  // 平台消息异步初始化
  Future<void> initPlatformState() async {
    String platformVersion;
    if (!mounted) return;

    try {
      platformVersion = await Yodo1MAS.instance.getPlatformVersion();
      setState(() {
        _platformVersion = platformVersion;
      });
    } catch (e) {
      log("获取平台版本失败: $e");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Yodo1 MAS 示例'),
        ),
        body: const SafeArea(
          child: YodoAdsExample(),
        ),
      ),
    );
  }
}

class YodoAdsExample extends StatefulWidget {
  const YodoAdsExample({Key? key}) : super(key: key);

  [@override](/user/override)
  _YodoAdsExampleState createState() => _YodoAdsExampleState();
}

class _YodoAdsExampleState extends State<YodoAdsExample> {
  static bool _showBanner = false;

  [@override](/user/override)
  void initState() {
    super.initState();
  }

  bool _pinned = true;
  bool _snap = true;
  bool _floating = true;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomScrollView(
        slivers: [
          const SliverToBoxAdapter(
            child: SizedBox(
              height: 20,
              child: Center(
                child: Text('滑动以查看SliverAppBar效果'),
              ),
            ),
          ),
          SliverAppBar(
            pinned: _pinned,
            snap: _snap,
            floating: _floating,
            expandedHeight: 60.0,
            elevation: 50,
            flexibleSpace: const FlexibleSpaceBar(
              title: Text('SliverAppBar'),
              background: FlutterLogo(),
            ),
          ),
          SliverList(
            delegate: SliverChildBuilderDelegate(
                  (BuildContext context, int index) {
                return Container(
                  color: index.isOdd ? Colors.white : Colors.black12,
                  height: 300.0,
                  child: Center(
                    child: Yodo1MASNativeAd(
                      size: NativeSize.NativeLarge,
                      backgroundColor: "BLACK",
                      onLoad: () {
                        Yodo1MAS.instance.dismissNativeAd();
                        log("##############################################################\n ##########################");
                      },
                    ),
                  ),
                );
              },
              childCount: 1,
            ),
          ),
          SliverList(
            delegate: SliverChildBuilderDelegate(
                  (BuildContext context, int index) {
                return Container(
                  color: index.isOdd ? Colors.white : Colors.black12,
                  height: 100.0,
                  child: Center(
                    child: Text('$index', textScaleFactor: 5),
                  ),
                );
              },
              childCount: 20,
            ),
          ),
          SliverList(
            delegate: SliverChildBuilderDelegate(
                  (BuildContext context, int index) {
                return Container(
                  height: 300,
                  child: Center(
                    child: Yodo1MASBannerAd(
                      size: BannerSize.Banner,
                      onLoad: () {
                        log("Loaded \n \n ");
                      },
                      onLoadFailed: (error) {
                        log("fail \n \n \n ");
                      },
                    ),
                  ),
                );
              },
              childCount: 1,
            ),
          ),
        ],
      ),
      bottomNavigationBar: BottomAppBar(
        child: PreferredSize(
          child: Container(
            height: 150,
            child: Padding(
              padding: const EdgeInsets.all(8),
              child: Column(
                children: [
                  OverflowBar(
                    overflowAlignment: OverflowBarAlignment.center,
                    children: [
                      Row(
                        mainAxisSize: MainAxisSize.max,
                        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                        children: [
                          IconButton(
                            iconSize: 30.0,
                            padding: EdgeInsets.only(left: 28.0),
                            icon: Icon(Icons.search),
                            onPressed: () {},
                          ),
                          IconButton(
                            iconSize: 30.0,
                            padding: EdgeInsets.only(left: 20.0),
                            icon: Icon(Icons.add),
                            onPressed: () {},
                          ),
                          IconButton(
                            iconSize: 30.0,
                            padding: EdgeInsets.only(right: 28.0),
                            icon: Icon(Icons.alarm),
                            onPressed: () {},
                          ),
                        ],
                      ),
                      Row(
                        mainAxisSize: MainAxisSize.min,
                        children: [
                          const Text('snap'),
                          Switch(
                            onChanged: (bool val) {
                              setState(() {
                                _snap = val;
                                // 拍摄仅适用于浮动应用栏。
                                _floating = _floating || _snap;
                              });
                            },
                            value: _snap,
                          ),
                        ],
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ),
          preferredSize: Size.fromHeight(150.0),
        ),
      ),
    );
  }
}

更多关于Flutter插件yodo1mas的使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


Yodo1MAS 是 Yodo1 提供的一个 Flutter 插件,主要用于在移动应用中集成广告和变现功能。MAS 是 “Mobile Ad Service” 的缩写,表明该插件可能专注于广告管理和变现。虽然你提到插件的介绍是 “undefined”,但根据名称和 Yodo1 的业务范围,我们可以推测它可能提供以下功能:

1. 广告集成

  • 横幅广告 (Banner Ads): 在应用界面中显示横幅广告。
  • 插页式广告 (Interstitial Ads): 在应用流程中弹出全屏广告。
  • 激励视频广告 (Rewarded Video Ads): 用户观看视频广告后获得奖励。
  • 原生广告 (Native Ads): 将广告内容与应用界面无缝集成。

2. 广告平台支持

  • 可能支持多个广告平台,如 Google AdMob、Facebook Audience Network、Unity Ads 等。

3. 广告管理

  • 提供广告加载、显示、点击等事件的管理。
  • 支持广告的缓存、频率控制等高级功能。

4. 变现策略

  • 提供多种变现策略,如广告轮播、瀑布流等,以最大化广告收入。
  • 支持 A/B 测试,帮助开发者找到最佳的变现策略。

5. 分析和报告

  • 提供广告展示、点击、收入等数据的分析报告。
  • 支持实时数据监控,帮助开发者优化广告策略。

6. 合规性

  • 提供 GDPR、COPPA 等隐私合规工具,帮助开发者遵守相关法律法规。

使用步骤(推测)

  1. 安装插件

    flutter pub add yodo1mas
    
  2. 初始化插件main.dart 中初始化插件:

    import 'package:yodo1mas/yodo1mas.dart';
    
    void main() {
      WidgetsFlutterBinding.ensureInitialized();
      Yodo1MAS.initialize(appKey: 'YOUR_APP_KEY');
      runApp(MyApp());
    }
    
  3. 加载和显示广告

    Yodo1MAS.showBannerAd();
    Yodo1MAS.showInterstitialAd();
    Yodo1MAS.showRewardedAd();
    
  4. 处理广告事件

    Yodo1MAS.setRewardedAdListener(
      onRewardedAdLoaded: () {
        print('Rewarded Ad Loaded');
      },
      onRewardedAdFailedToLoad: (error) {
        print('Rewarded Ad Failed to Load: $error');
      },
      onRewardedAdOpened: () {
        print('Rewarded Ad Opened');
      },
      onRewardedAdClosed: () {
        print('Rewarded Ad Closed');
      },
      onRewardedAdEarnedReward: (reward) {
        print('Rewarded Ad Earned Reward: $reward');
      },
    );
    

注意事项

  • 广告标识符 (App Key): 使用插件前,需要从 Yodo1 获取应用的唯一标识符。
  • 平台配置: 根据需要进行 Android 和 iOS 平台的配置,如权限设置、依赖库等。
  • 测试模式: 在开发阶段,建议使用测试广告,避免产生不必要的费用。

获取更多信息

由于插件介绍不明确,建议访问 Yodo1 的官方文档或联系其支持团队以获取详细的集成指南和功能说明。

示例代码(假设)

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Yodo1MAS.initialize(appKey: 'YOUR_APP_KEY');
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Yodo1MAS Example')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  Yodo1MAS.showBannerAd();
                },
                child: Text('Show Banner Ad'),
              ),
              ElevatedButton(
                onPressed: () {
                  Yodo1MAS.showInterstitialAd();
                },
                child: Text('Show Interstitial Ad'),
              ),
              ElevatedButton(
                onPressed: () {
                  Yodo1MAS.showRewardedAd();
                },
                child: Text('Show Rewarded Ad'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部