Flutter通用功能集成插件mbf_universal_sdk的使用
Flutter通用功能集成插件mbf_universal_sdk的使用
MBF Universal SDK 是一个用于广告和分析的功能框架。
安装
要安装 MBFUniversalSDK,请运行以下命令:
flutter pub add mbf_universal_sdk
iOS
你需要在 Info.plist 文件中添加以下代码,并将 FILL_YOUR_WRITE_KEY_HERE
替换为你的写入密钥:
<key>MBFSDKConfig</key>
<dict>
<key>writeKey</key>
<string>FILL_YOUR_WRITE_KEY_HERE</string>
</dict>
如果你想为广告网络使用不同的写入密钥,可以添加另一个键值对:
<key>MBFSDKConfig</key>
<dict>
<key>writeKey</key>
<string>FILL_YOUR_WRITE_KEY_HERE</string>
<key>writeKeyForAdNetwork</key>
<string>FILL_YOUR_WRITE_KEY_HERE</string>
</dict>
在你的 UIApplicationDelegate 中导入 MBFUniversalSDK 模块:
#import <WebKit/WebKit.h>
#import <MBFUniversalSDK/MBFUniversalSDK-Swift.h>
在应用委托的方法中配置 MBFUniversalSDK 共享实例:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 在应用启动后进行自定义配置。
[MBF startWithConfig:nil];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
Android
你需要在应用的 AndroidManifest.xml 文件中添加以下代码:
<meta-data
android:name="vn.mobifone.sdk.WRITE_KEY"
android:value="FILL_YOUR_WRITE_KEY_HERE" />
如果你想为广告网络使用不同的写入密钥,可以添加另一个元数据:
<meta-data
android:name="vn.mobifone.sdk.WRITE_KEY"
android:value="FILL_YOUR_WRITE_KEY_HERE" />
<meta-data
android:name="vn.mobifone.sdk.WRITE_KEY_ADNETWORK"
android:value="FILL_YOUR_WRITE_KEY_HERE" />
使用
广告网络
Banner Ad(横幅广告)
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
// ...
BannerAd(
size: AdSize.custom("320x100"),
unitID: <YOUR_INVENTORY_ID>,
request: const AdRequest(context: {
// 这是可选的
"title": "Got Talents show",
"keywords": "movie, show, hot",
"screen": "Home",
}),
listener: BannerAdListener(
onAdLoaded: () => print('FLT onAdLoaded'),
onAdFailedToLoad: (error) => print('FLT onAdFailedToLoad: $error')
),
),
预定义尺寸:
AdSize | 宽 x 高 |
---|---|
banner | 320x50 |
fullBanner | 468x60 |
largeBanner | 320x100 |
rectangle | 250x250 |
mediumRectangle | 300x250 |
video | 480x360 |
你也可以自定义任何尺寸,例如:640x480, 300x500…
Adaptive Banner Ad(自适应横幅广告)
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
// ...
BannerAd(
size: AdSize.custom("320x150"),
unitID: <YOUR_INVENTORY_ID>,
adaptiveSize: <YOUR_ADAPTIVE_SIZE>, // SDK 将根据广告比例自动计算高度
request: const AdRequest(context: {
// 这是可选的
"title": "Got Talents show",
"keywords": "movie, show, hot",
"screen": "Home",
}),
listener: BannerAdListener(
onAdLoaded: () => print('FLT onAdLoaded'),
onAdFailedToLoad: (error) => print('FLT onAdFailedToLoad: $error')
),
),
Video Ad(视频广告)
要显示视频广告,你需要使用 VideoAdLoader
函数从 MBF 平台获取 VAST 标签 URL,然后使用自己的播放器播放它。
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
// ...
try {
// 通过调用 VideoAdLoader 函数并传递库存 ID 和广告类型来加载广告
var vastTagUrl = await VideoAdLoader.loadAd(YOUR_INVENTORY_ID, 'video');
print('FLT onAdLoader: $vastTagUrl');
// 然后使用自己的播放器播放检索到的 vastTagUrl
} catch (error) {
// 如果在加载广告时发生错误,打印错误消息
print('FLT onAdFailedToLoad: $error');
}
分析
分析会自动初始化并收集数据。你也可以手动跟踪事件。
跟踪事件
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
Analytics.track(String name, [Map<String, Object>? properties]);
要跟踪事件,你需要调用 Analytics.track()
方法并传递两个参数:name
和 properties
。
name
参数是一个字符串,用于命名事件,例如:“Post view”, “Sign up”, “Purchase” 等。properties
参数是一个对象,包含事件的详细信息,例如:文章标题,产品类型,订单价值等。
// 创建一个对象以包含事件的属性
const postViewEventProperties = {
title: 'Post Title',
category: 'Category 1, Category 2',
keyword: 'Keyword 1, Keyword 2, ...',
...
};
// 跟踪事件 "Post view" 并传递创建的属性
Analytics.track('Post view', postViewEventProperties);
识别事件
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
Analytics.identify(String userId, [Map<String, Object>? traits]);
要识别用户,你需要调用 Analytics.identify()
方法并传递一个参数:userId
。
userId
参数是一个字符串,用于标识你的用户,例如:“PartnerUserID-01”。- 你还可以传递另一个对象以包含有关用户的其他信息,例如:用户名,用户类型等。
// 创建一个对象以包含用户的属性
const userTraits = {
userName: 'Username 1',
userType: 'Normal',
...
};
// 使用创建的用户 ID 和属性识别用户
Analytics.identify('PartnerUserID-01', userTraits)
屏幕事件
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
Analytics.screen(String title, [Map<String, Object>? properties]);
要跟踪屏幕,你需要调用 Analytics.screen()
方法并传递一个参数:title
。
title
参数是一个字符串,用于命名屏幕,例如:“Login Screen”, “Home Screen” 等。- 你还可以传递另一个对象以包含有关屏幕的详细信息,例如:登录方法,帖子数量等。
// 创建一个对象以包含屏幕的属性
const loginScreenProperties = {
loginMethod: 'FACEBOOK/GOOGLE/OTP/QR',
...
};
// 使用创建的屏幕名称和属性跟踪屏幕
Analytics.screen(title: "LoginScreen", properties: loginScreenProperties)
更多关于Flutter通用功能集成插件mbf_universal_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter通用功能集成插件mbf_universal_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
mbf_universal_sdk
是一个为 Flutter 应用设计的通用功能集成插件,旨在简化开发者集成各种功能模块的过程。该插件通常提供了一系列常用的功能,如网络请求、本地存储、设备信息获取、推送通知等,帮助开发者快速构建功能丰富的应用。
安装
首先,你需要在 pubspec.yaml
文件中添加 mbf_universal_sdk
插件的依赖:
dependencies:
flutter:
sdk: flutter
mbf_universal_sdk: ^1.0.0 # 请确保使用最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
1. 初始化 SDK
在使用 mbf_universal_sdk
之前,通常需要先初始化 SDK。你可以在 main.dart
文件中进行初始化:
import 'package:flutter/material.dart';
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 SDK
await MBFUniversalSdk.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
2. 网络请求
mbf_universal_sdk
提供了简化的网络请求功能。你可以使用它来发送 HTTP 请求:
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
Future<void> fetchData() async {
try {
var response = await MBFUniversalSdk.http.get('https://jsonplaceholder.typicode.com/posts');
print('Response data: ${response.data}');
} catch (e) {
print('Error: $e');
}
}
3. 本地存储
mbf_universal_sdk
还提供了本地存储功能,方便你保存和读取数据:
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
void saveData() async {
await MBFUniversalSdk.storage.setString('key', 'value');
}
void readData() async {
String value = await MBFUniversalSdk.storage.getString('key');
print('Stored value: $value');
}
4. 设备信息
你可以使用 mbf_universal_sdk
获取设备信息:
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
void getDeviceInfo() async {
String deviceId = await MBFUniversalSdk.device.getDeviceId();
String platform = await MBFUniversalSdk.device.getPlatform();
print('Device ID: $deviceId');
print('Platform: $platform');
}
5. 推送通知
mbf_universal_sdk
还支持推送通知功能:
import 'package:mbf_universal_sdk/mbf_universal_sdk.dart';
void configurePushNotifications() async {
await MBFUniversalSdk.pushNotification.configure();
MBFUniversalSdk.pushNotification.onMessageReceived.listen((message) {
print('Received message: $message');
});
}