Flutter功能扩展插件flutter_ubi的使用

Flutter功能扩展插件flutter_ubi的使用

flutter_ubi

百姓车联 UBI SDK 提供驾驶数据收集与分析功能,可以帮助企业洞察用户的驾驶习惯。同时 UBI SDK 提供多种基于用户驾驶行为的运营活动,从而帮助企业更频繁地与用户互动,改善用户的驾驶习惯。

企业用户可以将 UBI Flutter SDK 接入到自己的 APP 中,快速获取收集与分析用户驾驶行为的能力。您可以参照 UBI Flutter SDK 接入指南 中的指引完成 UBI Flutter SDK 的接入。

UBI Flutter SDK 目前支持 Android 和 iOS 平台。


使用步骤

以下是完整的使用示例,展示如何在 Flutter 应用中集成 flutter_ubi 插件。

1. 初始化 SDK

首先,确保在 main.dart 文件中初始化 flutter_ubi 插件。以下是一个完整的示例:

// example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_ubi/flutter_ubi.dart';
import 'package:flutter_ubi_example/page/login.dart';
import 'package:flutter_ubi_example/page/ubi.dart';

import 'common/sdk_utils.dart'; // 自定义工具类(用于生成用户令牌)

void main() async {
  WidgetsFlutterBinding.ensureInitialized(); // 确保 Flutter 绑定初始化
  final isSdkEnabled = await _initFlutterUbi(); // 初始化 UBI SDK
  runApp(MyApp(isSdkEnabled)); // 启动应用
}

Future<bool> _initFlutterUbi() async {
  // 调用 init 方法并检查是否成功
  final result = await FlutterUbi.init(requestUserPassportToken); // requestUserPassportToken 是一个自定义方法
  return result.isSuccessful(); // 判断初始化是否成功
}

class MyApp extends StatelessWidget {
  final bool isSdkEnabled;

  const MyApp(this.isSdkEnabled, {Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 根据 SDK 是否启用,跳转到不同的页面
    return MaterialApp(
      home: isSdkEnabled ? UBIPage() : LoginPage(), // 如果 SDK 启用,跳转到 UBI 页面;否则跳转到登录页面
    );
  }
}

2. 自定义工具类

为了生成用户令牌,可以创建一个工具类 sdk_utils.dart,用于模拟请求令牌的逻辑。例如:

// example/common/sdk_utils.dart

String requestUserPassportToken() {
  // 模拟生成用户令牌
  return "your_user_token"; // 替换为实际生成的令牌
}

3. 创建登录页面

如果 SDK 初始化失败,用户需要先登录以获取令牌。以下是一个简单的登录页面示例:

// example/page/login.dart

import 'package:flutter/material.dart';

class LoginPage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("登录页面"),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 用户登录后触发 SDK 初始化
            Navigator.pushReplacementNamed(context, "/home");
          },
          child: Text("登录"),
        ),
      ),
    );
  }
}

4. 创建 UBI 页面

当 SDK 初始化成功后,用户可以直接进入 UBI 数据收集页面。以下是一个简单的示例:

// example/page/ubi.dart

import 'package:flutter/material.dart';

class UBIPage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("UBI 数据收集页面"),
      ),
      body: Center(
        child: Text("欢迎使用 UBI 功能!"),
      ),
    );
  }
}

更多关于Flutter功能扩展插件flutter_ubi的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter功能扩展插件flutter_ubi的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_ubi 是一个用于在 Flutter 应用中集成 UBI(User Behavior Insight)功能的插件。UBI 是一种用户行为分析工具,可以帮助开发者收集和分析用户在使用应用时的行为数据,从而优化产品体验。

1. 安装 flutter_ubi 插件

首先,你需要在 pubspec.yaml 文件中添加 flutter_ubi 依赖:

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

然后运行 flutter pub get 来安装依赖。

2. 初始化 flutter_ubi

在你的 Flutter 应用启动时,通常是在 main.dart 文件中,初始化 flutter_ubi

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 UBI
  await FlutterUbi.init(
    appKey: 'YOUR_APP_KEY',  // 替换为你的 UBI App Key
    channel: 'default',      // 渠道号,默认为 'default'
    debug: true,             // 是否开启调试模式
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter UBI Demo',
      home: HomeScreen(),
    );
  }
}

3. 使用 flutter_ubi 记录用户行为

你可以在应用的各个地方使用 flutter_ubi 来记录用户的行为事件。例如:

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter UBI Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 记录一个自定义事件
            FlutterUbi.trackEvent(
              eventName: 'button_click',
              parameters: {'button_name': 'start_button'},
            );
          },
          child: Text('Click Me'),
        ),
      ),
    );
  }
}

4. 设置用户属性

你还可以设置用户属性,以便在分析时更好地区分用户:

FlutterUbi.setUserProperty({
  'user_id': '12345',
  'user_name': 'John Doe',
  'user_level': 'vip',
});

5. 其他功能

flutter_ubi 还提供了其他一些功能,例如:

  • 页面浏览统计:自动记录页面的浏览情况。
  • 用户ID设置:设置用户的唯一标识。
  • 事件属性:为事件添加自定义属性。

6. 调试与日志

在开发阶段,你可以开启调试模式来查看 flutter_ubi 的日志输出:

await FlutterUbi.init(
  appKey: 'YOUR_APP_KEY',
  channel: 'default',
  debug: true,  // 开启调试模式
);

7. 发布应用

在发布应用时,确保将 debug 参数设置为 false,以避免在生产环境中输出调试日志。

await FlutterUbi.init(
  appKey: 'YOUR_APP_KEY',
  channel: 'default',
  debug: false,  // 关闭调试模式
);
回到顶部