tencent cloud

文档反馈

最后更新时间:2025-01-07 17:50:33

    插件功能

    tencent_cloud_chat_sdk 5.1.5版本之后,您可以集成腾讯云即时通信官方提供的投票插件tencent_cloud_chat_vote_plugin,此插件为闭源插件,集成后,您可以在群里(Community 和 AVChatRoom 除外)集成投票功能。投票功能包括发起(单选、多选)投票、查看投票结果,参与投票等。Flutter 端与 Native 的投票能力互通。

    环境与版本

    本插件依赖插件以及环境
    Fluter 3.10.0及以上
    tencent_cloud_chat_sdk 5.1.5及以上

    插件引入

    通过 pub 可将投票插件 tencent_cloud_chat_vote_plugin 1.0.2 引入到项目中:
    // 集成最新版本
    pub add tencent_cloud_chat_vote_plugin
    // 集成指定版本,在项目pubspec.yaml中dependencies字段加入
    tencent_cloud_chat_vote_plugin: "version"

    核心组件

    插件集成

    初始化插件

    // 放在登录IM后
    
    await TencentCloudChatVotePlugin.initPlugin();

    创建投票

    用户单击投票按钮,可创建投票。
    import 'package:example/config.dart';
    import 'package:flutter/material.dart';
    import 'package:tencent_cloud_chat_vote_plugin/components/vote_create/vote_create.dart';
    
    class VoteCreateExample extends StatefulWidget {
    const VoteCreateExample({super.key});
    
    @override
    State<StatefulWidget> createState() => VoteCreateExampleState();
    }
    
    class VoteCreateExampleState extends State {
    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: const Text("创建投票"),
    ),
    body: Container(
    padding: const EdgeInsets.all(16),
    child: TencentCloudChatVoteCreate(
    groupID: ExampleConfig.testGruopID,
    onCreateVoteSuccess: () {
    Navigator.pop(context);
    },
    ),
    ),
    );
    }
    }
    TencentCloudChatVoteCreate 参数说明
    参数
    说明
    groupID
    需要创建投票的群 ID,同 IM 群 ID,Community 和 AVChatRoom 除外。
    onCreateVoteSuccess
    创建投票成功回调。

    投票消息解析

    import 'package:example/config.dart';
    import 'package:example/vote_detail_example.dart';
    import 'package:flutter/material.dart';
    import 'package:tencent_cloud_chat_sdk/enum/history_msg_get_type_enum.dart';
    import 'package:tencent_cloud_chat_sdk/models/v2_tim_message.dart';
    import 'package:tencent_cloud_chat_sdk/models/v2_tim_value_callback.dart';
    import 'package:tencent_cloud_chat_sdk/tencent_im_sdk_plugin.dart';
    import 'package:tencent_cloud_chat_vote_plugin/tencent_cloud_chat_vote_plugin.dart';
    
    class VoteMessageExample extends StatefulWidget {
    const VoteMessageExample({super.key});
    
    @override
    State<StatefulWidget> createState() => VoteMessageExampleState();
    }
    
    class VoteMessageExampleState extends State {
    V2TimMessage? message;
    getTestV2TimMessage() async {
    V2TimValueCallback<List<V2TimMessage>> messageListRes =
    await TencentImSDKPlugin.v2TIMManager
    .getMessageManager()
    .getHistoryMessageList(
    count: 1,
    groupID: ExampleConfig.testGruopID,
    getType: HistoryMsgGetTypeEnum.V2TIM_GET_CLOUD_OLDER_MSG,
    );
    if (messageListRes.code == 0) {
    if (messageListRes.data != null) {
    if (messageListRes.data!.isNotEmpty) {
    setState(() {
    message = messageListRes.data!.first;
    });
    }
    }
    }
    }
    
    bool isEnd = false;
    @override
    void initState() {
    super.initState();
    Future.delayed(
    const Duration(
    milliseconds: 300,
    ), () {
    setState(() {
    isEnd = true;
    });
    });
    // 页面运动结束再显示组件
    getTestV2TimMessage();
    }
    
    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: const Text("投票消息体"),
    ),
    body: !isEnd
    ? Container()
    : message != null
    ? TencentCloudChatVoteMessage(
    message: message!,
    onTap: (
    TencentCloudChatVoteDataOptoin option,
    TencentCloudChatVoteLogic data,
    ) {
    print(data.voteData.toJson());
    Navigator.push(
    context,
    MaterialPageRoute(
    builder: (context) => VoteDetailExample(
    option: option,
    data: data,
    ),
    ),
    );
    },
    )
    : const Center(
    child: Text("未获取到正确的Message实例"),
    ),
    );
    }
    }
    
    TencentCloudChatVoteMessage参数说明
    参数
    说明
    message
    投票消息,V2TimMessage 类型。
    onTap
    单击投票回调,当投票为公开且实名时,可以打开群投票详情。

    投票详情查看

    import 'package:flutter/material.dart';
    import 'package:tencent_cloud_chat_vote_plugin/tencent_cloud_chat_vote_plugin.dart';
    
    class VoteDetailExample extends StatelessWidget {
    final TencentCloudChatVoteDataOptoin option;
    final TencentCloudChatVoteLogic data;
    const VoteDetailExample({
    super.key,
    required this.option,
    required this.data,
    });
    
    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: Text(option.option),
    ),
    body: Padding(
    padding: const EdgeInsets.all(16),
    child: TencentCloudChatVoteDetail(
    option: option,
    data: data,
    ),
    ),
    );
    }
    }
    
    TencentCloudChatVoteDetail 参数说明
    参数
    说明
    option
    TencentCloudChatVoteDataOption 类型,投票详情数据,由 TencentCloudChatVoteMessage 单击时获取。
    data
    TencentCloudChatVoteLogic 类型由 TencentCloudChatVoteMessage 点击时获取。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持