更新记录

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): 获取被禁言的群组列表

注意事项

  1. 使用前请确保服务端已经实现相应的WebSocket和HTTP接口
  2. WebSocket连接会自动进行重连,最多重试5次
  3. 建议在页面卸载时主动关闭WebSocket连接
  4. 群组相关的操作需要相应的权限

更新日志

v1.0.0

  • 初始版本发布
  • 实现基础的WebSocket通信功能
  • 实现群组管理功能
  • 实现群组成员管理功能

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问