一个轻量级的 Swift 包,让您可以访问每个 iOS 版本的所有可用表情符号。此外,此仓库还包含一个脚本,用于从 Unicode.org 获取特定版本的全部表情符号。
该仓库包含两个不同的产品,适用于不同的使用场景
EmojiKit:一个 Swift Package Manager (SPM) 包,为支持的 iOS 版本提供所有可用的表情符号。它已经包含了高于或等于 iOS 15.0 的所有 iOS 版本所支持的表情符号。EmojiSourceKit:一个脚本,用于从 Unicode.org 获取表情符号版本,解析它们并将它们存储在易于使用的 json 文件中。在大多数情况下,仅使用 EmojiKit 就足以满足您的应用程序的需求。 EmojiSourceKit 仅在您想要手动获取版本或获取较旧的不受支持的 Unicode 版本时才需要。
https://github.com/niklasamslgruber/EmojiKit
SPM 包提供了一个易于使用的 EmojiManager,它可以解析存储的表情符号文件,并将它们作为 EmojiCategory 数组返回。每个类别都是 Apple 在任何 Apple 平台上使用的类别,并包含分配给该类别的所有表情符号。总共有 8 个类别。
import EmojiKit
let emojisByCategory: [EmojiCategory] = EmojiManager.getAvailableEmojis()
参数
version:默认情况下,EmojiManager 始终返回用户设备上支持的最高 Unicode 版本。您也可以手动指定一个版本,这可能会导致某些表情符号显示为 '?',如果 Unicode 版本与用户的 iOS 版本不匹配。showAllVariations:许多表情符号都有不同的肤色版本。默认情况下,EmojiManager 仅返回每个表情符号的中性(黄色)版本。如果您想要接收所有版本,请将此参数设置为 true。at url:如果您不想使用此包中已包含的表情符号文件,您可以手动指定您的 emoji_.json 文件的位置。在大多数情况下,如果您只想在 Swift 中获取表情符号,则不需要这部分。 如果您的应用程序支持低于
iOS 15.0的 iOS 版本,则本章适合您。
此脚本背后的主要思想是,没有一个完整的受支持表情符号列表可以轻松地在 Swift 中使用。 此脚本从 Unicode.org 获取完整的表情符号列表,解析它们并返回一个结构化的 emojis_vX.json 文件,其中所有表情符号都分配给其官方 Unicode 类别。 .json 文件可以很容易地被解析,以便在任何产品中进一步使用。
注意 Unicode 已经发布了 15.1 版本,但是这些表情符号在 iOS 上尚不支持。
EmojiSourceKit已经包含了新的表情符号,但它们还不能在 iOS 上使用。 一旦 Apple 集成了它们,我们将发布新版本。
git clone https://github.com/niklasamslgruber/EmojiKit
要从终端将 EmojiSourceKit 用作脚本,需要执行一些额外的步骤
cd 进入它。swift run -c release EmojiSourceKit 以构建包。/usr/local/bin 以使其在系统范围内可用,使用 cp .build/release/EmojiSourceKit /usr/bin/emojiSourceKit。或者,您可以简单地运行
sh build.sh一次性完成步骤 2 和 3。
emojiSourceKit download <path> -v <version>
参数
path:指定应存储 emoji_v<version>.json 文件的目录。 仅提供目录,例如 /Desktop 或 . 表示当前目录,而不是完整的文件路径。version (--version, -v):目前仅支持版本 14 和 15(最新)。目前仅支持两个 Unicode 版本(版本 14 和 15)。 如果您想访问旧版本的表情符号,您需要手动编辑源代码。
EmojiManager.Version 枚举添加一个新的枚举案例。 例如,对于版本 12,您需要添加 case v12 = 12。 此外,添加一个 versionIdentifier。 这应该完全匹配 Unicode.org 上的版本号。 您可以在 此处 找到所有版本。getSupportedVersion 函数以返回与相应 iOS 版本的新枚举案例。emojiSourceKit download <path> --version 12 参数运行脚本,以获取版本 12 版本的表情符号。EmojiManager.getAvailableEmojis(at: <url) 函数的参数,以在 Swift 中访问表情符号。表情符号在我的应用程序中呈现为 <?>
如果您正在使用 EmojiKit,您很可能在 iOS 版本低于 iOS 15.0 的设备上运行该应用程序。 目前不支持这种情况。 为了使其仍然有效,请按照使用不受支持的版本运行 EmojiSourceKit 的说明,以获取您的设备 iOS 版本支持的所有表情符号。
当使用 url 参数时,EmojiManager 不返回任何表情符号
在这种情况下,请确保您已将 emojis_vX.json 文件添加到您的 Xcode 项目中。 文件名必须与您尝试获取表情符号的版本匹配,例如,对于版本 12,文件名必须为 emojis_v12.json。 此外,请确保您的 JSON 文件在 Build Phase - Copy Bundle Resources 下为您要使用 EmojiManager 的每个目标添加。