搜索插件、代码仓与 APP 分类

插件详情v2.5.1

flutter_emoji

一个轻量级的 Emoji 包,适用于 Flutter,包含所有最新的表情符号,充满爱意制作,尽情享受吧!

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
2.4万
喜欢数
199
Pub 分数
150

安装插件

flutter pub add flutter_emoji

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个轻量级的 Flutter 包,提供对最新表情符号的访问,旨在轻松集成到应用程序中。它支持所有主要平台,包括 Android、iOS、Web、macOS、Windows 和 Linux。该包会定期更新以包含新的表情符号,并且在设计时注重简单性和性能。非常适合通过富有表现力且最新的表情符号内容来增强用户界面,而不会增加冗余。

适合场景

  • 向文本小部件添加表情符号
  • 创建聊天或消息界面
  • 通过富有表现力的图标增强用户界面
  • 支持社交媒体风格的内容
  • 显示表情符号反应

主要特点

  • 最新表情符号集
  • 跨平台支持
  • 轻量级大小
  • 易于使用的 API
  • 定期更新

适合对象

  • 简单的表情符号显示
  • 聊天应用
  • 用户生成内容
  • 社交功能
  • 面向全球受众的应用

使用建议

  • 可能需要手动更新以支持罕见或新发布的表情符号
  • 超出基本渲染之外的自定义功能有限
  • 无内置表情符号选择器
  • 依赖外部源获取表情符号数据
  • 未针对大型表情符号密集型布局进行优化

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

flutter_emoji

Build Status Coverage

Null Safety

👉 A light-weight Emoji 📦 for Flutter and Dart-based applications with all up-to-date emojis 😄. Made from 💯% ☕ with ❤️!

Inspired from the node-emoji package.

Update: since v2.3.4+, support all emojis listed in Unicode 13.0.

NOTE: I initially created this package to support my Flutter apps. However, Dart is growing to support on more platforms, so starting from v2.4.0+, this package will be available to all types of Dart-based applications.

Work in progress

I'm working on the new version of the package, it might or might not introduce breaking changes but I will try to maintain the compatibility in the API.

Here are few upcoming update to the v3:

  • Support Unicode 15.1+ emojis.
  • Skin tone
  • Group (category) of the emojis
  • Emoji version
  • Few new methods for handling/manipulating emojis.

Installation

Add this into pubspec.yaml

dependencies:
  flutter_emoji: ">= 2.0.0"

API Usage

First, import the package:

import 'package:flutter_emoji/flutter_emoji.dart';

There are two main classes you need to know to handle Emoji text: Emoji and EmojiParser.

Basically, you need to initialize an instance of EmojiParser and call its methods.

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

// Get emoji info
var emojiHeart = parser.info('heart');
print(emojiHeart); '{name: heart, full: :heart:, code: ❤️}'

// Check emoji equality
heart == emojiHeart;  // returns: true
heart == emojiCoffee; // returns: false

// Get emoji by name or code
parser.get('coffee');   // returns: Emoji{name="coffee", full=":coffee:", code="☕"}
parser.get(':coffee:'); // returns: Emoji{name="coffee", full=":coffee:", code="☕"}

parser.hasName('coffee'); // returns: true
parser.getName('coffee'); // returns: Emoji{name="coffee", full=":coffee:", code="☕"}

parser.hasEmoji('❤️'); // returns: true
parser.getEmoji('❤️'); // returns: Emoji{name="heart", full=":heart:", code="❤️"}

parser.emojify('I :heart: :coffee:'); // returns: 'I ❤️ ☕'
parser.unemojify('I ❤️ ☕'); // returns: 'I :heart: :coffee:'

// Count number of present emojis
parser.count('I ❤️ Flutter just like ☕'); // returns: 2

// Count frequency of a specific emoji
parser.frequency('I ❤️ Flutter just like ☕', '❤️'); // returns: 1

// Replace a specific emoji by another emoji
parser.replace('I ❤️ coffee', '❤️', '❤️‍🔥'); // returns: 'I ❤️‍🔥 coffee'

// Get a list of all emojis from the input
parser.parseEmojis('I ❤️ Flutter just like ☕'); // returns: ['❤️', '☕']

All methods will return Emoji.None if emoji is not found, except these two emojify() and unemojify() that will return original input.

parser.get('does_not_exist_emoji_name'); // returns: Emoji.None
Initialize emoji data for EmojiParser

There are two available datasets available you can choose to initialize for EmojiParser: local and server.

// to load local dataset
var localParser1 = EmojiParser();
var localParser2 = EmojiParser(init: false);
localParser2.initLocalData();

// to load server dataset
// this will trigger an URL request to download latest emoji data
var serverParser = EmojiParser(init: false);
await serverParser.initServerData(); // make sure to wrap in an `async` function/method.

NOTE: make sure to add Internet permission on Android.

<!-- Required to fetch data from the internet. -->
<uses-permission android:name="android.permission.INTERNET" />

In any occasion that local dataset doesn't have the latest emojis, load server dataset instead. If it is still not working, please create an issue or pull request to the repo.

TODO

Features coming to this package:

  • [x] Get detail of an emoji.
  • [x] Refactor for easier usage.
  • [x] Validate bad input.
  • [x] Find list of available emojis from a given text.
  • [x] Replace emoji by another one.
  • [x] Callback for additional formatting found emojis.
  • [x] Ability to fetch latest emoji list.
  • [ ] Make extensible emoji matcher.

License

MIT @ 2019 Pete Houston.

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目