findme-miniprogram-frontend/utils/nim.js
2025-12-27 17:16:03 +08:00

194 lines
8.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
* │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S L│P/B│ ┌┐ ┌┐ ┌┐
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └┘ └┘ └┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
* │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ | \ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter │ │ 4 │ 5 │ 6 │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
* ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
* │ Ctrl│ │Alt │ Space │ Alt│ │ │Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │←─┘│
* └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
*/
/*
* @Description: NIM模块裁剪器
* @Author: realrain☔ 1936648485@qq.com
* @Date: 2025-11-15 21:08:12
* @LastEditors: realrain☔ 1936648485@qq.com
* @LastEditTime: 2025-11-15 21:41:44
* @FilePath: \findme-miniprogram\utils\nim.js
* @X/Facebook: 1936648485@qq.com ~~~~~~~~~~~~~~~~~~~~~~~ Blogreallyrain.com
* Copyright (c) 2025 by real-rain, All Rights Reserved.
*/
import {
NIM,
setAdapters,
wxAdapters,
V2NIMMessageService,
V2NIMMessageLogUtil,
V2NIMConversationService,
V2NIMStorageService,
V2NIMTeamService,
V2NIMUserService,
V2NIMFriendService,
V2NIMSubscriptionService,
V2NIMConst
} from 'nim-web-sdk-ng/dist/esm/nim'
/**
* 设置 NIM 运行的环境。wxAdapters 表示程序在微信环境运行
*/
setAdapters(wxAdapters)
/**
* 注册了消息服务和会话服务
*
* 具体有哪些模块可以注入, 请参照 SDK 使用说明: https://doc.yunxin.163.com/messaging2/guide/DcyMjA1Njk?platform=client#%E6%96%B9%E5%BC%8F%E4%BA%8Cesm-%E5%BC%95%E5%85%A5
*/
/**
* 消息模块.
*
* 影响 API 包含 V2NIMMessageService 下全部接口.
*/
NIM.registerService(V2NIMMessageService, 'V2NIMMessageService')
/**
* 消息模块-消息记录相关工具类. 包含查询消息历史等功能.
*
* 影响 API 包含 V2NIMMessageService 的部分接口, 举例:
* getMessageList, getMessageListEx,
* getMessageListByRefers, clearHistoryMessage
*/
NIM.registerService(V2NIMMessageLogUtil, 'V2NIMMessageLogUtil')
/**
* 消息模块-扩展功能. 包含 pin 消息, 收藏消息等功能
*
* 影响 API 包含 V2NIMMessageService 的部分接口, 举例:
* pinMessage, unpinMessage, updatePinMessage, voiceToText,
* getPinnedMessageList, addQuickComment, removeQuickComment, getQuickCommentList, addCollection,
* removeCollections, updateCollectionExtension, getCollectionListByOption,
* getCollectionListExByOption, searchCloudMessages, searchCloudMessagesEx
*/
// NIM.registerService(V2NIMMessageExtendUtil, 'V2NIMMessageExtendUtil') // 🔥 暂时注释,该模块可能未导入
/**
* 消息序列化与反序列化工具
*
* 影响 API 包含 V2NIMMessageConverter 的全部接口.
*/
// NIM.registerService(V2NIMMessageConverter, 'V2NIMMessageConverter')
/**
* 云端存储模块, 包含上传文件能力
*
* 影响 API 包含 V2NIMMessageService 的部分接口, 举例:
* V2NIMMessageService.sendMessage (发图片/文件类型的消息时)
* V2NIMMessageService.cancelMessageAttachmentUpload (取消文件消息的上传)
*
* 影响 API 包含 V2NIMStorageService 的全部接口.
*/
NIM.registerService(V2NIMStorageService, 'V2NIMStorageService')
/**
* 云端会话模块.
*
* 影响 API 包含 V2NIMConversationService 的全部接口.
*/
NIM.registerService(V2NIMConversationService, 'V2NIMConversationService')
/**
* 群组模块.
*
* 影响 API 包含 V2NIMSettingService 的部分接口, 举例:
* setTeamMessageMuteMode, getTeamMessageMuteMode, getAllTeamMessageMuteMode
*
* 影响 API 包含 V2NIMTeamService 的全部接口.
*/
NIM.registerService(V2NIMTeamService, 'V2NIMTeamService')
/**
* 用户模块.
*
* 影响 API 包含 V2NIMSettingService 的部分接口, 举例:
* getConversationMuteStatus, setP2PMessageMuteMode
*
* 影响 API 包含 V2NIMUserService 的全部接口.
*/
NIM.registerService(V2NIMUserService, 'V2NIMUserService') // 用户模块
/**
* 好友模块.
*
* 影响 API 包含 V2NIMFriendService 的全部接口.
*/
NIM.registerService(V2NIMFriendService, 'V2NIMFriendService')
/**
* 通知模块.
*
* 影响 API 包含 V2NIMNotificationService 的全部接口.
*/
// NIM.registerService(V2NIMNotificationService, 'V2NIMNotificationService')
/**
* 设置模块.
*
* 影响 API 包含 V2NIMSettingService 的全部接口.
* - 包含推送配置, 会话免打扰设置.
* - 与会话免打扰有关的设置需要引入群, 用户模块
*/
// NIM.registerService(V2NIMSettingService, 'V2NIMSettingService')
/**
* AI 数字人模块.
*
* 影响 API 包含 V2NIMMessageService 的部分接口与事件:
* sendMessage (发送参数 aiConfig, 配置 AI 相关)
* onReceiveMessages (收消息事件, 回调的 V2NIMMessage 消息体参见属性 aiConfig 与 streamConfig 流式输出)
* onReceiveMessagesModified (消息更新事件, 回调的 V2NIMMessage 消息体参见属性 aiConfig 与 streamConfig 流式输出)
*
* 影响 API 包含 V2NIMAIService 的全部接口.
*/
// NIM.registerService(V2NIMAIService, 'V2NIMAIService')
/**
* 订阅模块, 如上下线状态通知订阅.
*
* 影响 API 包含 V2NIMSubscriptionService 的全部接口.
*/
NIM.registerService(V2NIMSubscriptionService, 'V2NIMSubscriptionService')
/**
* 信令模块
*
* 影响 API 包含 V2NIMSignallingService 的全部接口.
*/
// NIM.registerService(V2NIMSignallingService, 'V2NIMSignallingService')
/**
* 服务代理相关
*
* 影响 API 包含 V2NIMPassthroughService 的全部接口.
*/
// NIM.registerService(V2NIMPassthroughService, 'V2NIMPassthroughService')
/**
* 此外某些模块包含工具类, 只需要引入对应模块服务, 就能直接使用该工具类, 关系如下
*
* V2NIMConversationIdUtil(会话 id 工具类) => V2NIMMessageService, V2NIMConversationService
* V2NIMClientAntispamUtil(客户端反垃圾工具类) => V2NIMMessageService
* V2NIMMessageCreator(消息构造工具类) => V2NIMMessageService
*
* 注意:这些工具类不是直接导出的,而是通过 NIM 实例访问:
* - NIM.V2NIMMessageCreator
* - NIM.V2NIMConversationIdUtil
*/
export { NIM, V2NIMConst }