对于支持使用 npm 的项目,可直接安装到该项目下:
npm install @polyv/emotion-sdk
对于不支持使用 npm 的项目,可以在安装后,拷贝 node_modules/@polyv/emotion-sdk/lib/polyv-emotion.umd.js
到目标项目使用,占用的全局变量为 PolyvEmotionSDK
。
表情 SDK 提供了一个表情解析器,该解析器必须在表情数据就绪时才能调用。
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
// ...
});
把指定内容中的表情占位符替换为表情图片。
import { emotionsReady, EmotionParsingMode } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
// HTML 模式下会把表情占位符替换为 img 元素
console.log(parser.parse('[微笑][撇嘴]', EmotionParsingMode.HTML));
// 弹幕模式下会把表情占位符替换为“[[图片地址]]”,主要用于传入到保利威播放器展示弹幕
console.log(parser.parse('[微笑][撇嘴]', EmotionParsingMode.DANMAKU));
});
移除指定内容中的所有表情占位符。注意,如果表情占位符内的是一个不存在的表情,则不会被移除。
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
parser.removeAll('[微笑][撇嘴]'); // ''
parser.removeAll('[没有这个表情]'); // '[没有这个表情]'
});
生成包含表情列表的 HTML 元素。
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
document.body.appendChild(parser.genDOMList());
document.body.appendChild(parser.genDOMList(64)); // 可以指定表情尺寸
// 可以指定表情尺寸和样式类
document.body.appendChild(
parser.genDOMList({
size: 64,
cssClass: {
list: 'my-menu',
item: 'my-menu-item',
inner: 'my-menu-item-inner'
}
})
);
});
用于遍历表情数据。
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
parser.eachEmotion((item) => {
console.dir(item);
});
});