Flutter集成CarrotQuest服务插件flutter_carrotquest_plugin的使用

Flutter集成CarrotQuest服务插件flutter_carrotquest_plugin的使用


简介

flutter_carrotquest 是一个用于在 Flutter 应用中集成 Carrot Quest 服务的插件,支持 Android 和 iOS 平台。


实现步骤

Android

build.gradle 文件中进行以下配置:

android {
    
    defaultConfig {
        ...
        minSdkVersion 21
        ...
    }
    ...
    packagingOptions {
        exclude 'META-INF/*.kotlin_module'
    }
    ...
}
iOS

iOS 平台上无需额外配置。


使用步骤

1. 导入插件

在 Dart 文件中导入插件:

import 'package:flutter_carrotquest/flutter_carrotquest_plugin.dart';
2. 初始化 CarrotQuest

通过 Carrot.setup 方法初始化插件,并传入 apiKeyappId

await Carrot.setup(apiKey: 'your apiKey', appId: 'your appId')
        .catchError((onError) => print(onError));
3. 设置调试模式(仅限 Android)

如果需要启用调试模式,可以调用以下方法:

await Carrot.setDebug()
        .catchError((onError) => print(onError));
4. 用户认证(仅限 Android)

通过 Carrot.auth 方法对用户进行身份验证:

await Carrot.auth(userId: 'your userId', userAuthKey: 'your userAuthKey')
        .catchError((onError) => print(onError));
5. 停止 CarrotQuest 服务(仅限 Android)

如果需要停止 CarrotQuest 服务,可以调用以下方法:

await Carrot.deinit()
        .catchError((onError) => print(onError));
6. 打开聊天窗口

通过 Carrot.openChat 方法打开聊天窗口:

await Carrot.openChat()
        .catchError((onError) => print(onError));
7. 设置 FCM Token(仅限 iOS)

在 iOS 上设置 Firebase Cloud Messaging (FCM) Token:

await Carrot.setToken('your fcmToken')
        .catchError((onError) => print(onError));
8. 设置用户属性

通过 Carrot.setUserProperty 方法设置用户的自定义属性:

await Carrot.setUserProperty({'age':'28'})
        .catchError((onError) => print(onError));
9. 跟踪事件

通过 Carrot.trackEvent 方法跟踪特定事件:

await Carrot.trackEvent('your eventName', eventParams: '{"your eventKey":"your eventValue"}')
        .catchError((onError) => print(onError));

完整示例代码

以下是一个完整的示例代码,展示如何在 Flutter 应用中集成 flutter_carrotquest_plugin

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

import 'package:flutter_carrotquest/flutter_carrotquest.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    // 初始化 CarrotQuest
    await Carrot.setup(apiKey: 'your apiKey', appId: 'your appId')
        .catchError((onError) => print(onError));

    // 设置调试模式(仅限 Android)
    // await Carrot.setDebug().catchError((onError) => print(onError));

    // 用户认证(仅限 Android)
    // await Carrot.auth(userId: 'your userId', userAuthKey: 'your userAuthKey')
    //     .catchError((onError) => print(onError));

    // 打开聊天窗口
    await Carrot.openChat().catchError((onError) => print(onError));

    // 设置用户属性
    await Carrot.setUserProperty({'age': '28'})
        .catchError((onError) => print(onError));

    // 跟踪事件
    await Carrot.trackEvent('eventDemo', eventParams: '{"eventKey":"eventValue"}')
        .catchError((onError) => print(onError));
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('CarrotQuest 插件示例'),
        ),
        body: Center(
          child: Text('CarrotQuest 初始化完成!'),
        ),
      ),
    );
  }
}

更多关于Flutter集成CarrotQuest服务插件flutter_carrotquest_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成CarrotQuest服务插件flutter_carrotquest_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_carrotquest_plugin 是一个用于在 Flutter 应用中集成 CarrotQuest 服务的插件。CarrotQuest 是一款用户互动和营销自动化工具,可以帮助你与用户进行实时沟通、收集用户反馈、推送通知等。

以下是如何在 Flutter 项目中集成和使用 flutter_carrotquest_plugin 的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 flutter_carrotquest_plugin 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_carrotquest_plugin: ^1.0.0 # 检查最新版本

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

2. 初始化 CarrotQuest

在你的 Flutter 应用的 main.dart 文件中,初始化 CarrotQuest 服务。通常,你需要在 main() 函数中进行初始化:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 CarrotQuest
  await FlutterCarrotquest.instance.init(
    apiKey: 'YOUR_API_KEY',
    appId: 'YOUR_APP_ID',
  );
  
  runApp(MyApp());
}

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

请确保将 YOUR_API_KEYYOUR_APP_ID 替换为你在 CarrotQuest 控制台中获取的实际值。

3. 使用 CarrotQuest 功能

flutter_carrotquest_plugin 提供了多种功能,例如显示聊天窗口、发送用户属性、处理推送通知等。以下是一些常见的使用示例:

显示聊天窗口

你可以在应用中添加一个按钮,点击后打开 CarrotQuest 的聊天窗口:

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('CarrotQuest Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            FlutterCarrotquest.instance.showChat();
          },
          child: Text('Open Chat'),
        ),
      ),
    );
  }
}

设置用户属性

你可以使用 setUserProperty 方法设置用户属性:

FlutterCarrotquest.instance.setUserProperty(
  key: 'user_email',
  value: 'user@example.com',
);

处理推送通知

如果你需要使用 CarrotQuest 的推送通知功能,你需要在 init 方法中启用推送通知,并处理推送通知的点击事件:

await FlutterCarrotquest.instance.init(
  apiKey: 'YOUR_API_KEY',
  appId: 'YOUR_APP_ID',
  enablePushNotifications: true,
);

FlutterCarrotquest.instance.onPushNotificationOpened.listen((data) {
  // 处理推送通知点击事件
  print('Push notification opened: $data');
});

4. 处理用户登录和登出

当用户登录或登出时,你需要通知 CarrotQuest:

用户登录

FlutterCarrotquest.instance.auth(userId: 'USER_ID', userAuthKey: 'USER_AUTH_KEY');

用户登出

FlutterCarrotquest.instance.logout();

5. 其他功能

flutter_carrotquest_plugin 还提供了其他功能,例如:

  • 发送事件:使用 trackEvent 方法发送自定义事件。
  • 获取未读消息数:使用 getUnreadConversationsCount 方法获取未读消息数。
FlutterCarrotquest.instance.trackEvent(name: 'event_name', params: {'key': 'value'});

FlutterCarrotquest.instance.getUnreadConversationsCount().then((count) {
  print('Unread messages: $count');
});

6. 调试和日志

如果你想查看 CarrotQuest 插件的调试日志,可以在初始化时启用调试模式:

await FlutterCarrotquest.instance.init(
  apiKey: 'YOUR_API_KEY',
  appId: 'YOUR_APP_ID',
  debug: true,
);
回到顶部