Flutter插件vmax_flutter的使用方法
Flutter插件vmax_flutter的使用方法
VmaxFlutter SDK允许发布者展示各种各样的广告。
Flutter插件vmax_flutter开始使用
iOS前置条件
- 使用Xcode 14.1或更高版本
- 目标iOS 12.0或更高版本
Android前置条件
在AndroidManifest.xml
文件中添加以下条目:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" />
初始化VmaxFlutterManager
初始化VmaxFlutter SDK的第一步。发布者需要在发出广告请求之前初始化VmaxFlutterManager
类。
首先需要在Vmax控制台注册并生成accountId
、appId
和secretKey
。
在初始化VmaxFlutterManager
之前,开发者需要先初始化VmaxFlutterUser
并传递用户特定的定向信息。例如,用户ID、性别、年龄、城市、地区、国家、邮政编码及关键字等参数:
VmaxFlutterUser vmaxUser = VmaxFlutterUser.instance;
vmaxUser.setId("USER_ID");
vmaxUser.setGender("USER_GENDER");
vmaxUser.setAge("USER_AGE");
vmaxUser.setCity("USER_CITY");
vmaxUser.setRegion("USER_REGION");
vmaxUser.setCountry("USER_COUNTRY");
vmaxUser.setZipCode("USER_ZIPCODE");
vmaxUser.setKeywords(["USER_KEYWORD"]);
然后使用accountId
、appId
和secretKey
初始化VmaxFlutterManager
,并设置相应的监听器以获取初始化状态:
VmaxFlutterManager.instance.initialize(accountId: ACCOUNT_ID, appId: APP_ID, secretKey: "SECRET_KEY", listener: InitializationStatusListener(
onSuccess: (){
print("VmaxManager Initialization Success");
},
onFailure: (){
print("VmaxManager Initialization Failed");
})
);
初始化VmaxFlutter库会验证appId
,获取用户定向数据,并获取后续广告请求中使用的用户代理、IDFA和设备信息。
VmaxFlutterDevice
VmaxFlutterDevice
类负责与设备相关的定向信息。SDK会在初始化过程中预取某些信息,如用户代理、IFA、IFA相关的用户限制、设备类型、制造商、型号、操作系统、操作系统版本、语言、运营商和连接类型。
开发者可以选择更新这些设备信息(可选):
VmaxFlutterDevice vmaxDevice = VmaxFlutterDevice.instance;
vmaxDevice.setMake("DEVICE_MAKE");
vmaxDevice.setModel("DEVICE_MODEL");
vmaxDevice.setOS("DEVICE_OS");
vmaxDevice.setOSVersion("DEVICE_OS_VERSION");
vmaxDevice.setPlatform(DEVICE_PLATFORM);
vmaxDevice.setMarketingName("DEVICE_MARKETING_NAME");
// 更新设备信息后,调用此方法以反映在广告请求中
vmaxDevice.updateVmaxDevice();
VmaxFlutterApplication
VmaxFlutterApplication
类负责应用特定的定向信息。
开发者可以选择更新这些应用信息(可选):
VmaxFlutterApplication vmaxApplication = VmaxFlutterApplication.instance;
vmaxApplication.setCustomData({"CUSTOM_KEY":"CUSTOM_VALUE"});
vmaxApplication.setKeywords(["CUSTOM_KEYWORD"]);
// 更新应用信息后,调用此方法以反映在广告请求中
vmaxApplication.updateVmaxApplication();
创建广告空间
VmaxFlutterAdSpace
代表一个预留用于显示单个广告的空间。开发者可以使用这个空间来展示各种广告。
要显示广告,你需要从Vmax控制台创建TAG_ID
,然后使用它来实现广告空间的变现。
开发者需要监听VmaxFlutterAdSpaceListener
,它告诉他们广告空间的当前状态。
创建VmaxFlutterAdSpace
的步骤如下:
注意:在创建VmaxFlutterAdSpace
之前,VmaxFlutterManager
的InitializationStatusListener
状态必须成功。
- 通过提供
tagId
并注册VmaxFlutterAdSpaceListener
来创建VmaxFlutterAdSpace
实例:
VmaxFlutterAdSpace _adSpace = VmaxFlutterAdSpace(tagId: "TAG_ID", listener: VmaxFlutterAdSpaceListener(
onAdReady: () {
print("VmaxFlutterAdSpace onAdReady");
},
onAdRender: (){
print("VmaxFlutterAdSpace onAdRender");
},
onAdError: () {
print("VmaxFlutterAdSpace onAdError");
},
onAdClick: (){
print("VmaxFlutterAdSpace onAdClick");
})
);
- 创建完
VmaxFlutterAdSpace
后,需要调用cacheAd()
方法向Vmax服务器发送广告请求。 - 当从
VmaxFlutterAdSpaceListener
接收到onAdReady
回调时,使用VmaxWidget
类,并将VmaxFlutterAdSpace
对象传递给它们:
VmaxWidget(adSpace: _adSpace)
VmaxWidget是什么?
VmaxWidget
是一个Flutter小部件,用于显示VmaxFlutterAdSpace
。
开发人员必须在显示小部件之前调用cacheAd()
方法。否则,将抛出PlatformException
。
完整示例
以下是一个完整的示例代码,展示了如何使用vmax_flutter
插件:
import 'package:flutter/material.dart';
import 'package:vmax_flutter/vmax_flutter.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 从Vmax仪表板获取以下值。
int accountId = 0;
int appId = 0;
String secretKey = '';
String tagId = '';
VmaxFlutterAdSpace? _bannerAd1;
bool isManagerLoaded = false;
bool isAdReady = false;
[@override](/user/override)
void initState() {
super.initState();
if (accountId <= 0 || appId <= 0 || secretKey.isEmpty) {
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary("AccountId, AppId & SecretKey can't be empty.")
]);
} else {
_loadVmaxManager();
}
}
[@override](/user/override)
void dispose() {
super.dispose();
_bannerAd1?.closeAd();
_bannerAd1 = null;
}
void _loadVmaxManager() async {
VmaxFlutterManager.instance.initialize(accountId: accountId, appId: appId, secretKey: secretKey, listener: InitializationStatusListener(
onSuccess: (){
isManagerLoaded = true;
print("VmaxManager Initialization Success");
},
onFailure: (){
print("VmaxManager Initialization Failed");
})
);
}
void _loadAd() async {
_bannerAd1 = VmaxFlutterAdSpace(tagId: tagId, listener: VmaxFlutterAdSpaceListener(
onAdReady: () {
isAdReady = true;
print("VmaxFlutterAdSpace onAdReady");
},
onAdRender: (){
print("VmaxFlutterAdSpace onAdRender");
},
onAdRefresh: () {
print("VmaxFlutterAdSpace onAdRefresh");
},
onAdError: () {
print("VmaxFlutterAdSpace onAdError");
},
onAdClick: (){
print("VmaxFlutterAdSpace onAdClick");
},)
);
_bannerAd1?.cacheAd();
}
void _showAd() async {
if (isManagerLoaded && isAdReady) {
setState(() {});
} else {
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary("VmaxFlutterAdSpace failed to load the ad.")
]);
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Vmax Example App'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(onPressed: _loadAd, child: const Text("Cache Ad")),
ElevatedButton(onPressed: _showAd, child: const Text("Show Ad")),
const SizedBox(height: 10),
if (isManagerLoaded && isAdReady)
VmaxWidget(adSpace: _bannerAd1!)
else
const SizedBox(
width: 320,
height: 50,
child: Placeholder(),
)
],
),
),
),
);
}
}
更多关于Flutter插件vmax_flutter的使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter插件vmax_flutter的使用方法的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
关于vmax_flutter
这个Flutter插件,由于它不是一个广为人知的官方或广泛使用的插件,具体细节和文档可能相对稀缺。不过,假设它是一个第三方插件,通常我们可以通过查阅其官方文档或仓库中的README文件来了解其使用方法和功能。
以下是一个假设性的示例,展示了如何在一个Flutter项目中集成并使用一个名为vmax_flutter
的插件(请注意,这里的代码是基于假设的,实际使用时需要根据插件的真实API进行调整):
-
添加依赖:
首先,你需要在
pubspec.yaml
文件中添加vmax_flutter
作为依赖项。dependencies: flutter: sdk: flutter vmax_flutter: ^x.y.z # 替换为实际的版本号
然后运行
flutter pub get
来安装依赖。 -
导入插件:
在你需要使用该插件的Dart文件中导入它。
import 'package:vmax_flutter/vmax_flutter.dart';
-
使用插件:
假设
vmax_flutter
插件提供了一个名为VMaxWidget
的组件,你可以这样使用它:import 'package:flutter/material.dart'; import 'package:vmax_flutter/vmax_flutter.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('VMax Flutter Plugin Demo'), ), body: Center( child: VMaxWidget( // 假设VMaxWidget接受一些参数,这里只是示例 param1: 'value1', param2: 123, onEvent: (event) { // 处理事件回调 print('Received event: $event'); }, ), ), ); } }
注意:
- 上面的代码是一个假设性的示例,实际使用时需要根据
vmax_flutter
插件的真实API进行调整。 - 如果
vmax_flutter
插件提供了初始化步骤或配置选项(例如需要在main.dart
中初始化某个单例),你需要查阅插件的文档并按照指示进行操作。 - 如果插件有特定的平台通道调用或需要原生代码支持,你可能还需要在
ios/
或android/
目录下进行额外的配置。
由于vmax_flutter
不是一个广为人知的插件,如果上述假设性示例不符合你的需求,建议直接查阅该插件的官方文档或仓库中的README文件以获取准确的使用指南和API参考。如果插件没有提供足够的文档,你可能需要联系插件的维护者或查看其issue跟踪器以获取更多信息。