EmojiKit

一个轻量级的 Swift 包,让您可以访问每个 iOS 版本的所有可用表情符号。此外,此仓库还包含一个脚本,用于从 Unicode.org 获取特定版本的全部表情符号。

安装

该仓库包含两个不同的产品,适用于不同的使用场景

在大多数情况下,仅使用 EmojiKit 就足以满足您的应用程序的需求。 EmojiSourceKit 仅在您想要手动获取版本或获取较旧的不受支持的 Unicode 版本时才需要。

EmojiKit

安装

SwiftPM
https://github.com/niklasamslgruber/EmojiKit

用法

SPM 包提供了一个易于使用的 EmojiManager,它可以解析存储的表情符号文件,并将它们作为 EmojiCategory 数组返回。每个类别都是 Apple 在任何 Apple 平台上使用的类别,并包含分配给该类别的所有表情符号。总共有 8 个类别。

获取所有支持的表情符号

import EmojiKit

let emojisByCategory: [EmojiCategory] = EmojiManager.getAvailableEmojis()

参数

EmojiSourceKit

在大多数情况下,如果您只想在 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 用作脚本,需要执行一些额外的步骤

  1. 克隆仓库并 cd 进入它。
  2. 运行 swift run -c release EmojiSourceKit 以构建包。
  3. 将产品移动到 /usr/local/bin 以使其在系统范围内可用,使用 cp .build/release/EmojiSourceKit /usr/bin/emojiSourceKit

或者,您可以简单地运行 sh build.sh 一次性完成步骤 2 和 3。

执行

emojiSourceKit download <path> -v <version>

参数

使用不受支持的版本

目前仅支持两个 Unicode 版本(版本 14 和 15)。 如果您想访问旧版本的表情符号,您需要手动编辑源代码。

  1. EmojiManager.Version 枚举添加一个新的枚举案例。 例如,对于版本 12,您需要添加 case v12 = 12。 此外,添加一个 versionIdentifier。 这应该完全匹配 Unicode.org 上的版本号。 您可以在 此处 找到所有版本。
  2. 修改 getSupportedVersion 函数以返回与相应 iOS 版本的新枚举案例。
  3. 使用 emojiSourceKit download <path> --version 12 参数运行脚本,以获取版本 12 版本的表情符号。
  4. 将表情符号文件添加到您的 Xcode 项目,并将它的 url 指定为 EmojiManager.getAvailableEmojis(at: <url) 函数的参数,以在 Swift 中访问表情符号。

故障排除

  1. 表情符号在我的应用程序中呈现为 <?>

    如果您正在使用 EmojiKit,您很可能在 iOS 版本低于 iOS 15.0 的设备上运行该应用程序。 目前不支持这种情况。 为了使其仍然有效,请按照使用不受支持的版本运行 EmojiSourceKit 的说明,以获取您的设备 iOS 版本支持的所有表情符号。

  2. 当使用 url 参数时,EmojiManager 不返回任何表情符号

    在这种情况下,请确保您已将 emojis_vX.json 文件添加到您的 Xcode 项目中。 文件名必须与您尝试获取表情符号的版本匹配,例如,对于版本 12,文件名必须为 emojis_v12.json。 此外,请确保您的 JSON 文件在 Build Phase - Copy Bundle Resources 下为您要使用 EmojiManager 的每个目标添加。