UNPKG

wechat-emojis

Version:

完整的微信内置表情资源库,包含 109 个高清 PNG 图片和类型安全的 TypeScript API

252 lines (193 loc) 7.03 kB
# 微信表情包 完整的微信内置表情资源库,包含 109 个高清 PNG 图片和类型安全的 TypeScript API。 ## 功能特性 - 🎯 **完整收录** - 109 个微信内置表情,按类别组织 - 🔧 **TypeScript 支持** - 完整类型定义,编译时错误检查 - 🚀 **即插即用** - 支持 React、Vue、Angular 等主流框架 - 📦 **多种导入方式** - ES6 模块、CommonJS、直接文件引用 - 🔍 **强大 API** - 搜索、分类、随机获取等功能 - 📱 **高质量图片** - PNG 格式,适合各种显示场景 - 📚 **详细文档** - 完整 API 文档和使用示例 ## 快速开始 ### 安装使用 #### 通过 NPM 安装(推荐) ```bash # 使用 npm 安装 npm install wechat-emojis # 复制表情资源到项目的 public 目录(重要) mkdir -p public/assets cp -r node_modules/wechat-emojis/assets/* public/assets/ ``` ### 基础用法 ```typescript // 使用 NPM 安装的情况 import { getEmojiPath, getEmojisByCategory, EmojiCategory, searchEmojis } from 'wechat-emojis'; // 或者从本地导入 // import { getEmojiPath, getEmojisByCategory, EmojiCategory, searchEmojis } from './wechatEmoji'; // 获取单个表情 const smilePath = getEmojiPath('微笑'); // 'assets/face/微笑.png' // 获取分类表情 const faceEmojis = getEmojisByCategory(EmojiCategory.FACE); // 75个人脸表情 // 搜索表情 const laughEmojis = searchEmojis('笑'); // 包含"笑"的所有表情 ``` ## 项目结构 ```text wechat-emojis/ ├── assets/ # 表情图片资源 (109个PNG文件) │ ├── face/ # 人脸表情 (75个) │ ├── gesture/ # 手势表情 (10个) │ ├── animal/ # 动物表情 (4个) │ ├── blessing/ # 祝福表情 (7个) │ └── other/ # 其他表情 (13个) ├── wechatEmoji.ts # TypeScript API模块 ├── wechatEmoji.js # 编译后的JavaScript文件 ├── data.js # 基础数据文件 ├── example.ts # 使用示例 ├── API.md # 详细API文档 └── tsconfig.json # TypeScript配置 ``` ## 使用指南 ### React 组件 ```tsx import React from 'react'; import { getEmojiPath, getEmojisByCategory, EmojiCategory } from 'wechat-emojis'; const EmojiPicker: React.FC = () => { const faceEmojis = getEmojisByCategory(EmojiCategory.FACE); return ( <div className="emoji-grid"> {faceEmojis.map(emoji => ( <img key={emoji.name} src={getEmojiPath(emoji.name)} alt={emoji.name} className="emoji-item" onClick={() => console.log(`选择: ${emoji.name}`)} /> ))} </div> ); }; ``` ### Vue 组件 ```vue <template> <div class="emoji-picker"> <img v-for="emoji in emojis" :key="emoji.name" :src="getEmojiPath(emoji.name)" :alt="emoji.name" @click="selectEmoji(emoji)" /> </div> </template> <script setup lang="ts"> import { getEmojisByCategory, getEmojiPath, EmojiCategory } from 'wechat-emojis'; const emojis = getEmojisByCategory(EmojiCategory.FACE); const selectEmoji = (emoji) => console.log(`选择: ${emoji.name}`); </script> ``` ### 原生 JavaScript ```javascript // NPM 包使用 const { getEmojiPath, EmojiCategory, searchEmojis } = require('wechat-emojis'); // 创建表情选择器 function createEmojiPicker(containerId) { const container = document.getElementById(containerId); const emojis = searchEmojis('笑'); emojis.forEach(emoji => { const img = document.createElement('img'); img.src = getEmojiPath(emoji.name); img.alt = emoji.name; img.onclick = () => console.log(`选择: ${emoji.name}`); container.appendChild(img); }); } ``` ### 直接使用图片 ```html <!-- 直接引用图片文件 --> <img src="assets/face/微笑.png" alt="微笑" /> <img src="assets/gesture/OK.png" alt="OK" /> <img src="assets/animal/猪头.png" alt="猪头" /> ``` ## API 参考 ### 核心函数 | 函数 | 参数 | 返回值 | 说明 | |------|------|--------|------| | `getEmojiPath(name)` | `EmojiName` | `string \| null` | 获取表情图片路径 | | `getEmojiInfo(name)` | `EmojiName` | `EmojiInfo \| null` | 获取表情详细信息 | | `getEmojisByCategory(category)` | `EmojiCategory` | `EmojiInfo[]` | 按类别获取表情列表 | | `getAllEmojis()` | - | `EmojiInfo[]` | 获取所有表情 | | `searchEmojis(keyword)` | `string` | `EmojiInfo[]` | 搜索包含关键词的表情 | | `hasEmoji(name)` | `string` | `boolean` | 检查表情是否存在 | | `getRandomEmoji(category?)` | `EmojiCategory?` | `EmojiInfo` | 随机获取表情 | ### 类型定义 ```typescript enum EmojiCategory { FACE = 'face', // 人脸表情 GESTURE = 'gesture', // 手势表情 ANIMAL = 'animal', // 动物表情 BLESSING = 'blessing', // 祝福表情 OTHER = 'other' // 其他表情 } interface EmojiInfo { name: string; // 表情名称 category: EmojiCategory; // 表情类别 path: string; // 图片路径 } ``` ## 数据统计 | 类别 | 数量 | 示例 | |------|------|------| | 人脸表情 | 75个 | 微笑、大哭、呲牙、捂脸、奸笑、加油 | | 手势表情 | 10个 | OK、握手、胜利、抱拳、合十、强、弱 | | 动物表情 | 4个 | 猪头、跳跳、发抖、转圈 | | 祝福表情 | 7个 | 庆祝、红包、烟花、爆竹 | | 其他表情 | 13个 | 爱心、啤酒、蛋糕、太阳、炸弹 | | **总计** | **109个** | 完整覆盖微信内置表情 | ## 技术要求 - **TypeScript**: 4.0+ (可选,用于类型检查) - **Node.js**: 12+ (用于编译,可选) - **浏览器**: 支持 ES2017+ 的现代浏览器 - **框架**: React 16+, Vue 3+, Angular 12+ 或原生 JavaScript ## 编译和构建 ```bash # 编译 TypeScript npx tsc wechatEmoji.ts --target es2017 --module commonjs # 或使用配置文件 npx tsc # 生成类型声明文件 npx tsc --declaration ``` ## 常见问题 **Q: 如何在 Webpack 项目中使用?** ```javascript // webpack.config.js module.exports = { resolve: { extensions: ['.ts', '.js'] } }; ``` **Q: 如何自定义表情路径?** ```typescript const customPath = getEmojiPath('微笑')?.replace('assets/', 'my-assets/'); ``` **Q: 支持哪些图片格式?** 所有表情均为 PNG 格式,透明背景,适合各种使用场景。 ## 版权声明 - 本项目为非官方项目,与腾讯公司及微信团队无关 - 表情图片版权归腾讯公司所有 - 本项目仅供个人学习和非商业用途使用 - 任何商业用途请事先获得腾讯公司的授权 - 如有侵权问题,请联系作者删除 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进项目。 # wechat-emojis # 请我喝杯茶 | buy me a cup of tea <div style="display: flex; justify-content: center; gap: 20px;"> <img src="public/images/alipay.png" alt="支付宝" width="300" /> <img src="public/images/wechat.png" alt="微信" width="300" /> </div>