ByteNoteByteNote

字节笔记本

2026年2月19日

flutter_emoji:Flutter Emoji 处理插件

API中转
¥120

本文介绍 flutter_emoji,一个轻量级的 Flutter Emoji 处理插件,支持 Unicode 13.0+ 的所有表情符号。

flutter_emoji 简介

flutter_emoji 是由 petehouston.com 开发的 Flutter 插件,提供完整的 Emoji 处理能力。它支持 Unicode 13.0+ 的所有表情符号,在 Pub.dev 上拥有稳定的版本更新。

核心定位:A light-weight Emoji package for Flutter with all up-to-date emojis, made with love and just enjoy!

基本信息

核心功能

  • 通过名称或代码获取 Emoji
  • 文本与 Emoji 相互转换(:heart:❤️
  • 统计文本中 Emoji 数量和频率
  • 替换特定 Emoji
  • 解析提取文本中的所有 Emoji

安装方法

pubspec.yaml 中添加:

yaml
dependencies:
  flutter_emoji: ^2.5.1

然后执行:

bash
flutter pub get

使用示例

基础用法

dart
import 'package:flutter_emoji/flutter_emoji.dart';

var parser = EmojiParser();
var coffee = Emoji('coffee', '☕');

// 获取 Emoji 信息
print(parser.info('heart'));
// 输出: {name: heart, full: :heart:, code: ❤️}

// 文本转 Emoji
print(parser.emojify('I :heart: :coffee:'));
// 输出: I ❤️ ☕

// Emoji 转文本
print(parser.unemojify('I ❤️ ☕'));
// 输出: I :heart: :coffee:

统计与替换

dart
// 统计 Emoji 数量
parser.count('I ❤️ Flutter just like ☕');
// 输出: 2

// 替换 Emoji
parser.replace('I ❤️ coffee', '❤️', '❤️‍🔥');
// 输出: I ❤️‍🔥 coffee

数据初始化

dart
// 本地数据(默认)
var parser = EmojiParser();
// 或
parser.initLocalData();

// 服务器数据(需网络权限)
await parser.initServerData();

完整示例

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

class EmojiDemo extends StatefulWidget {
  @override
  _EmojiDemoState createState() => _EmojiDemoState();
}

class _EmojiDemoState extends State<EmojiDemo> {
  final parser = EmojiParser();
  String input = 'I :heart: Flutter :rocket:';
  String output = '';

  @override
  void initState() {
    super.initState();
    convertEmoji();
  }

  void convertEmoji() {
    setState(() {
      output = parser.emojify(input);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Flutter Emoji')),
      body: Padding(
        padding: EdgeInsets.all(16),
        child: Column(
          children: [
            TextField(
              controller: TextEditingController(text: input),
              onChanged: (value) {
                input = value;
                convertEmoji();
              },
              decoration: InputDecoration(
                labelText: '输入文本',
                hintText: '使用 :emoji_name: 格式',
              ),
            ),
            SizedBox(height: 20),
            Text('转换结果:', style: TextStyle(fontWeight: FontWeight.bold)),
            SizedBox(height: 10),
            Text(output, style: TextStyle(fontSize: 24)),
          ],
        ),
      ),
    );
  }
}

依赖包

  • characters: ^1.2.0
  • http: >=0.13.0 <2.0.0

适用场景

  • 聊天应用表情输入
  • 社交媒体内容处理
  • 文本编辑器表情支持
  • 用户昵称表情显示

总结

flutter_emoji 是一个轻量级但功能完整的 Emoji 处理插件:

  • 全面支持:Unicode 13.0+ 所有表情
  • 双向转换:文本与 Emoji 互转
  • 跨平台:支持所有 Flutter 平台
  • 易于使用:API 简洁直观

对于需要 Emoji 功能的 Flutter 应用来说,这是一个可靠的选择。

分享: