Flutter广告播放插件purchasely_android_player的使用

Flutter广告播放插件purchasely_android_player的使用

Purchasely

Purchasely 是一个解决方案,旨在简化在 App Store、Google Play Store 和华为应用市场上的应用内购买和订阅的集成。

安装

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

dependencies:
  purchasely_flutter: ^5.0.0-rc01

使用

以下是使用 Purchasely 插件的基本示例代码:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  [@override](/user/override)
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  bool _configured = false;

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

  Future<void> _configurePurchasely() async {
    _configured = await Purchasely.start(
        apiKey: '<YOUR_API_KEY>',
        androidStores: ['Google', 'Huawei', 'Amazon'], // 可以根据需要选择多个商店
        storeKit1: false,
        logLevel: PLYLogLevel.error,
        runningMode: PLYRunningMode.full,
        userId: null,
    );

    if (_configured) {
      print('Purchasely 已成功配置');
    } else {
      print('Purchasely 配置失败');
    }
  }

  Future<void> _showAd() async {
    var result = await Purchasely.presentPresentationForPlacement("<YOUR_PLACEMENT_ID>", isFullscreen: true);

    switch (result.result) {
      case PLYPurchaseResult.cancelled:
        {
          print("用户取消了购买");
        }
        break;
      case PLYPurchaseResult.purchased:
        {
          print("用户购买了 ${result.plan?.name}");
        }
        break;
      case PLYPurchaseResult.restored:
        {
          print("用户恢复了 ${result.plan?.name}");
        }
        break;
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Purchasely 广告播放示例'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _configured ? _showAd : null,
          child: Text('展示广告'),
        ),
      ),
    );
  }
}

代码解释

  1. 导入必要的库

    import 'package:flutter/material.dart';
    import 'package:purchasely_flutter/purchasely_flutter.dart';
    
  2. 主函数和应用根组件

    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      [@override](/user/override)
      Widget build(BuildContext context) {
        return MaterialApp(
          home: HomeScreen(),
        );
      }
    }
    
  3. HomeScreen 组件

    class HomeScreen extends StatefulWidget {
      [@override](/user/override)
      _HomeScreenState createState() => _HomeScreenState();
    }
    
    class _HomeScreenState extends State<HomeScreen> {
      bool _configured = false;
    
      [@override](/user/override)
      void initState() {
        super.initState();
        _configurePurchasely();
      }
    
  4. 配置 Purchasely

    Future<void> _configurePurchasely() async {
      _configured = await Purchasely.start(
          apiKey: '<YOUR_API_KEY>',
          androidStores: ['Google', 'Huawei', 'Amazon'],
          storeKit1: false,
          logLevel: PLYLogLevel.error,
          runningMode: PLYRunningMode.full,
          userId: null,
      );
    
      if (_configured) {
        print('Purchasely 已成功配置');
      } else {
        print('Purchasely 配置失败');
      }
    }
    
  5. 展示广告

    Future<void> _showAd() async {
      var result = await Purchasely.presentPresentationForPlacement("<YOUR_PLACEMENT_ID>", isFullscreen: true);
    
      switch (result.result) {
        case PLYPurchaseResult.cancelled:
          {
            print("用户取消了购买");
          }
          break;
        case PLYPurchaseResult.purchased:
          {
            print("用户购买了 ${result.plan?.name}");
          }
          break;
        case PLYPurchaseResult.restored:
          {
            print("用户恢复了 ${result.plan?.name}");
          }
          break;
      }
    }
    
  6. UI 界面

    [@override](/user/override)
    Widget build(BuildContext context) {
      return Scaffold(
        appBar: AppBar(
          title: Text('Purchasely 广告播放示例'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: _configured ? _showAd : null,
            child: Text('展示广告'),
          ),
        ),
      );
    }
    

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

1 回复

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


purchasely_android_player 是 Flutter 中的一个插件,专门用于在 Android 平台上播放广告。它通常用于应用中嵌入广告内容,如视频广告、插屏广告等。以下是如何使用 purchasely_android_player 插件的详细步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 purchasely_android_player 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  purchasely_android_player: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化插件

在使用插件之前,你需要在应用的 main 函数中初始化插件。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Purchasely Android Player
  await PurchaselyAndroidPlayer.init();
  
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Purchasely Android Player Example',
      home: HomeScreen(),
    );
  }
}

3. 播放广告

你可以使用 PurchaselyAndroidPlayer 来播放广告。以下是一个简单的例子,展示如何播放一个视频广告。

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

class HomeScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Purchasely Android Player Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 播放视频广告
            await PurchaselyAndroidPlayer.playVideoAd(
              adUnitId: 'YOUR_AD_UNIT_ID',  // 替换为你的广告单元ID
            );
          },
          child: Text('Play Video Ad'),
        ),
      ),
    );
  }
}

4. 处理广告事件

你可以监听广告事件,如广告加载完成、广告播放完成、广告点击等。

PurchaselyAndroidPlayer.onAdLoaded.listen((event) {
  print('Ad Loaded: $event');
});

PurchaselyAndroidPlayer.onAdFailedToLoad.listen((event) {
  print('Ad Failed to Load: $event');
});

PurchaselyAndroidPlayer.onAdClosed.listen((event) {
  print('Ad Closed: $event');
});

PurchaselyAndroidPlayer.onAdClicked.listen((event) {
  print('Ad Clicked: $event');
});

5. 其他功能

purchasely_android_player 插件还提供了其他功能,如暂停广告、恢复广告、销毁广告播放器等。你可以根据需要使用这些功能。

// 暂停广告
await PurchaselyAndroidPlayer.pauseAd();

// 恢复广告
await PurchaselyAndroidPlayer.resumeAd();

// 销毁广告播放器
await PurchaselyAndroidPlayer.destroy();

6. 注意事项

  • 广告单元ID:确保你使用了正确的广告单元ID,否则广告将无法加载。
  • 权限:确保你的应用有必要的权限来播放广告,如网络访问权限。
  • 测试广告:在开发阶段,建议使用测试广告单元ID,以避免产生不必要的广告费用。

7. 示例代码

以下是一个完整的示例代码,展示了如何使用 purchasely_android_player 插件播放广告。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Purchasely Android Player
  await PurchaselyAndroidPlayer.init();
  
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Purchasely Android Player Example',
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Purchasely Android Player Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 播放视频广告
            await PurchaselyAndroidPlayer.playVideoAd(
              adUnitId: 'YOUR_AD_UNIT_ID',  // 替换为你的广告单元ID
            );
          },
          child: Text('Play Video Ad'),
        ),
      ),
    );
  }
}
回到顶部