更新记录
1.0.2(2025-02-25) 下载此版本
更新文档,使用方法
1.0.1(2025-02-25) 下载此版本
1.更新流畅度
1.0.0(2025-02-25) 下载此版本
基于uni-app的即时通讯插件,支持WebSocket通信、群组管理和用户管理等功能
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.1.0 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | × | √ | √ | × |
Snowy IM
介绍
Snowy IM 是一个基于uni-app的即时通讯插件,提供了完整的WebSocket通信、群组管理和用户管理功能。该插件可以帮助开发者快速实现即时通讯功能,适用于各种IM场景。
功能特性
- WebSocket实时通信
- 群组管理(创建群组、加入群组、退出群组等)
- 用户管理(在线状态、用户信息等)
- 消息管理(发送消息、接收消息、历史消息等)
- 自动重连机制
- 支持多平台(H5、App、小程序等)
安装方式
在插件市场中搜索 snowy-mobile-im
并导入到项目中
使用方法
1. 在snowy-mobile项目中添加pages.json配置
{
"root": "uni_modules/snowy-mobile-im/components/snowy-mobile-im",
"pages": [{
"path": "index",
"style": {
"navigationBarTitleText": "IM首页",
//#ifdef H5
"navigationStyle": "custom"
//#endif
}
},{
"path": "chat/index",
"style": {
"navigationBarTitleText": "聊天页面",
//#ifdef H5
"navigationStyle": "custom"
//#endif
}
},{
"path": "contacts/groups",
"style": {
"navigationBarTitleText": "群聊",
//#ifdef H5
"navigationStyle": "custom"
//#endif
}
},{
"path": "contacts/group-setting",
"style": {
"navigationBarTitleText": "群聊设置",
//#ifdef H5
"navigationStyle": "custom"
//#endif
}
},{
"path": "components/group-member-select/index",
"style": {
"navigationBarTitleText": "群聊用户",
//#ifdef H5
"navigationStyle": "custom"
//#endif
}
},{
"path": "contacts/create-group",
"style": {
"navigationBarTitleText": "创建群聊",
//#ifdef H5
"navigationStyle": "custom"
//#endif
}
}]
}
2. 在tabBar中使用
// 复制如下配置放到tabBar中
{
"pagePath": "uni_modules/snowy-mobile-im/components/snowy-mobile-im/index",
"iconPath": "static/images/tabbar/msg.png",
"selectedIconPath": "static/images/tabbar/msg_.png",
"text": "IM"
}
3. 自定义使用
可以放到按钮中使用 页面跳转 例子如下:
<uni-grid-item @tap="toIm">
<view class="snowy-grid-center">
<snowy-icon backgroundColor="#fa3534" type="chat" size="20" color="#FFFFFF">
</snowy-icon>
<text style="margin-top: 10rpx">IM</text>
</view>
</uni-grid-item>
const toIm = () => {
uni.navigateTo({
url: '/uni_modules/snowy-mobile-im/components/snowy-mobile-im/index'
})
}
4. 系统权限
在移动端管理新增菜单,界面路径填 /uni_modules/snowy-mobile-im/components/snowy-mobile-im/index
在权限管理、角色管理中给对应的角色授权对应的移动端资源 ”你自己创建的IM菜单“
API文档
WebSocket相关
useWebSocket(pageId, callback)
: 初始化WebSocket连接pageId
: 页面唯一标识callback
: 消息接收回调函数- 返回值:
sendMessage
: 发送消息方法isConnected
: 检查连接状态方法
群组相关
imGroupSubmitForm(data, edit)
: 创建/编辑群组imGroupDelete(data)
: 删除群组imGroupDetail(data)
: 获取群组详情imGroupListByUser(data)
: 获取用户群组列表imGroupUploadAvatar(data)
: 上传群组头像
群组成员相关
imGroupMemberPage(data)
: 获取群组成员列表imGroupMemberSubmitForm(data, edit)
: 添加/编辑群组成员imGroupMemberDelete(data)
: 删除群组成员imGroupMemberMute(data)
: 禁言群组成员imGroupMemberUnMute(data)
: 解除群组成员禁言imGroupMemberMuteList(data)
: 获取被禁言的群组列表
注意事项
- 使用前请确保服务端已经实现相应的WebSocket和HTTP接口
- WebSocket连接会自动进行重连,最多重试5次
- 建议在页面卸载时主动关闭WebSocket连接
- 群组相关的操作需要相应的权限
更新日志
v1.0.0
- 初始版本发布
- 实现基础的WebSocket通信功能
- 实现群组管理功能
- 实现群组成员管理功能