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: &lt;YOUR_INVENTORY_ID&gt;,
  request: const AdRequest(context: {
    // 这是可选的
    "title": "Got Talents show",
    "keywords": "movie, show, hot",
    "screen": "Home",
  }),
  listener: BannerAdListener(
    onAdLoaded: () =&gt; print('FLT onAdLoaded'),
    onAdFailedToLoad: (error) =&gt; 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: &lt;YOUR_INVENTORY_ID&gt;,
  adaptiveSize: &lt;YOUR_ADAPTIVE_SIZE&gt;, // SDK 将根据广告比例自动计算高度
  request: const AdRequest(context: {
    // 这是可选的
    "title": "Got Talents show",
    "keywords": "movie, show, hot",
    "screen": "Home",
  }),
  listener: BannerAdListener(
    onAdLoaded: () =&gt; print('FLT onAdLoaded'),
    onAdFailedToLoad: (error) =&gt; 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&lt;String, Object&gt;? properties]);

要跟踪事件,你需要调用 Analytics.track() 方法并传递两个参数:nameproperties

  • 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&lt;String, Object&gt;? 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&lt;String, Object&gt;? 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

1 回复

更多关于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');
  });
}
回到顶部