Flutter加速度传感器插件flutter_adcel的使用
Flutter加速度传感器插件flutter_adcel的使用
flutter_adcel
是官方为 Flutter 提供的用于 Android 和 iOS 的 AdCel SDK 插件。
安装
- 在你的项目
pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter_adcel: "<LATEST_VERSION>"
- 运行以下命令来安装插件:
flutter pub get
示例代码
以下是完整的示例代码,展示了如何在 Flutter 应用程序中使用 flutter_adcel
插件。
import 'dart:io';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter_adcel/flutter_adcel.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with AdCelInterstitialListener, AdCelBannerListener {
bool _isButtonDisabled = true;
AdCelBannerController? _adCelBannerController;
[@override](/user/override)
void initState() {
super.initState();
initAdCel();
}
// 初始化 AdCel SDK
Future<void> initAdCel() async {
String key = '';
if (Platform.isAndroid) {
key = '89fdf849-b5bc-49d0-ad51-0b790e777ae4:fc7094bb-3ca7-4450-9a7e-320b6b4f4e42';
} else if (Platform.isIOS) {
key = 'ab3d155f-7703-4289-8372-848737c2b879:d949782d-cb74-4501-8f38-613f89a579b9';
}
AdCel.setInterstitialListener(this);
AdCel.setLogging(true);
// AdCel.setTestMode(true);
AdCel.setUserConsent(true);
AdCel.requestTrackingAuthorization();
AdCel.init(key, [
AdCelAdType.BANNER,
AdCelAdType.IMAGE,
AdCelAdType.VIDEO,
AdCelAdType.INTERSTITIAL,
AdCelAdType.REWARDED
]);
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
),
body: Column(
children: [
MaterialButton(
child: Text('显示广告'),
onPressed: _isButtonDisabled
? null
: () {
AdCel.showInterstitialAdZone(AdCelAdType.REWARDED, "菜单");
},
),
Container(
height: 50,
color: Colors.blue[700],
child: AdCelBanner(
adSize: AdCelBanner.SIZE_320x50,
listener: this,
onBannerCreated: (AdCelBannerController controller) {
print('MAIN.DART >>>> Load Banner Ad with ID = ${controller.getId}');
},
),
),
Container(
height: 250,
color: Colors.green[700],
child: AdCelBanner(
adSize: AdCelBanner.SIZE_300x250,
listener: this,
onBannerCreated: (AdCelBannerController controller) {
print('MAIN.DART >>>> Load Banner Ad with ID = ${controller.getId}');
_adCelBannerController = controller;
},
),
),
],
),
),
);
}
// 插播广告回调方法
[@override](/user/override)
void onFirstInterstitialLoad(String adType, String provider) {
print('MAIN.DART >>>> onFirstInterstitialLoad: $adType, $provider');
setState(() {
_isButtonDisabled = false;
});
}
[@override](/user/override)
void onInterstitialClicked(String adType, String provider) {
print('MAIN.DART >>>> onInterstitialClicked: $adType, $provider');
}
[@override](/user/override)
void onInterstitialDidDisappear(String adType, String provider) {
print('MAIN.DART >>>> onInterstitialDidDisappear: $adType, $provider');
}
[@override](/user/override)
void onInterstitialFailLoad(String adType, String error) {
print('MAIN.DART >>>> onInterstitialFailLoad: $adType, $error');
}
[@override](/user/override)
void onInterstitialFailedToShow(String adType) {
print('MAIN.DART >>>> onInterstitialFailedToShow: $adType');
}
[@override](/user/override)
void onInterstitialWillAppear(String adType, String provider) {
print('MAIN.DART >>>> onInterstitialWillAppear: $adType, $provider');
}
[@override](/user/override)
void onRewardedCompleted(String adProvider, String currencyName, String currencyValue) {
print('MAIN.DART >>>> onRewardedCompleted: $adProvider, $currencyName, $currencyValue');
}
// 横幅广告回调方法
[@override](/user/override)
void onBannerClicked() {
print('MAIN.DART >>>> onBannerClicked');
}
[@override](/user/override)
void onBannerAllProvidersFailedToLoad() {
print('MAIN.DART >>>> onBannerAllProvidersFailedToLoad');
_adCelBannerController?.setRefreshInterval(0);
_adCelBannerController?.loadNextAd();
}
[@override](/user/override)
void onBannerFailedToLoad() {
print('MAIN.DART >>>> onBannerFailedToLoad');
}
[@override](/user/override)
void onBannerFailedToLoadProvider(String provider) {
print('MAIN.DART >>>> onBannerFailedToLoadProvider: $provider');
}
[@override](/user/override)
void onBannerLoad() {
print('MAIN.DART >>>> onBannerLoad');
}
}
更多关于Flutter加速度传感器插件flutter_adcel的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter加速度传感器插件flutter_adcel的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中使用加速度传感器可以通过插件 flutter_accelerometer
来实现。以下是如何使用 flutter_accelerometer
插件的步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 flutter_accelerometer
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_accelerometer: ^0.1.0
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在需要使用加速度传感器的 Dart 文件中导入插件:
import 'package:flutter_accelerometer/flutter_accelerometer.dart';
3. 监听加速度数据
你可以通过 FlutterAccelerometer.accelerometerStream
来监听加速度传感器的数据。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:flutter_accelerometer/flutter_accelerometer.dart';
class AccelerometerScreen extends StatefulWidget {
[@override](/user/override)
_AccelerometerScreenState createState() => _AccelerometerScreenState();
}
class _AccelerometerScreenState extends State<AccelerometerScreen> {
AccelerometerEvent? _accelerometerEvent;
[@override](/user/override)
void initState() {
super.initState();
FlutterAccelerometer.accelerometerStream.listen((AccelerometerEvent event) {
setState(() {
_accelerometerEvent = event;
});
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('加速度传感器示例'),
),
body: Center(
child: _accelerometerEvent == null
? Text('等待加速度数据...')
: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('X: ${_accelerometerEvent!.x.toStringAsFixed(2)}'),
Text('Y: ${_accelerometerEvent!.y.toStringAsFixed(2)}'),
Text('Z: ${_accelerometerEvent!.z.toStringAsFixed(2)}'),
],
),
),
);
}
}