更新记录

1.1.0(2022-03-11)

1.由于官方前端加密不好用,导致好多示例没法用,现在去掉前端加密,核心基本都在前端,欢迎大家二次,赞助就买个,有需要联系我

1.0.9(2021-11-29)

1.优化收取方式,优化消息读取速度去掉所有延迟 2.增加管理员设置【权限包括禁言用户,踢人,设置公告】3.增加群公告发布设置

查看更多

平台兼容性

阿里云 腾讯云
Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue app-nvue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


yyx-im-frameim - 支持音视频 / 离线推送

一套完善的IM即时通讯插件,帮助开发者快速集成IM功能,兼容APP、H5、小程序[正在适配样式]

本框架使用unicloud做后端支撑,基础基于项目uni-starter[可进行更改快速应用到自己项目],支持插件式更新

非uni-starter项目,仅需改动vuex用户存储数据部分即可快速应用

示例:

可以在网页版加软件群,然后交流,我的账号是admin110 可以自己复制秘钥加入 也可以加我 我拉入

H5:语趣
APP:地址会发布到交流群公告
群里联系
语趣群 加入秘钥:

IntcInR5cGVcIjpcInRvcGljXCIsXCJpbnZpdGVDb2RlXCI6XCI2MTljYjI2ZTEyZjM2MDAwMDFiZTE5NGZcIixcIm1ldGhvZFwiOlwic2NhbkFkZEdyb3VwVXNlclwifSI=

使用: h5 打开网址 登录后点击右上角加号 扫一扫 输入即可 秘钥用于H5端扫一扫 加入群聊

语趣群 二维码:

示例图片内

示例问题请及时联系
可以直接作为即时通讯项目上线

后续支持适配各家通讯插件,当前使用

消息云服务:小米云(mimc) - 完全免费 海量并发 消息必达 消息漫游 全球接入 零成本接入 全平台支持
RTC音视频: anyRrc - 每月免费1W分钟

需求:

由于在一直调试测试该项目,可以直接在网页版按下方邀请 加入 群 直接联系我的 我的软件账号是 admin110 建议使用软件群,下方有H5端秘钥 可以直接 加入

QQ2412321321

聊天类型:私聊,群聊

消息类型:文字/表情/图片/语音[H5不支持录音]/视频/音视频通话[目前仅支持APP端]/撤回

会话支持:@类型,草稿显示,置顶,消息未读/已读设置,删除会话

存储支持:本地缓存[h5,小程序等],sqlLite[APP]

群支持:管理员 群公告 禁言

特性:

0.定制化mimc sdk,重写,增强 主要修复 老开源版本 离线信息只能拉28条问题,当前版本增强消息收取机制,再也不会丢离线消息。

0.增强离线推送,目前配置厂商离线 只配置了华为。

0.基本实现全套音视频通话,群聊和私聊,同时非当前市场上的SDK方式自己改的内容少,而是全自己实现,样式加载时期都可以自定义

1.会话列表做了优化处理,分为置顶,未阅读[草稿],已阅读三项列表。采用替换处理原则,仅需启动时加载一次

2.聊天界面支持无闪动下拉加载数据

3.支持历史聊天记录主动拉取,更换其他设备登录打开会话会自动拉取消息

4.支持最近会话拉取,第一次登录后会拉取到会话存入本地,目前只要会话为空,重新启动即加载

5.支持历史聊天记录查看

6.推送目前支持后台推送,完善离线推送

7.用户头像文字显示,未设置头像时使用昵称首字

8.应用定制优化多个组件,达到更多要求

版本计划:

1.按需增强功能,增加红包功能

2.增加后台管理

集成方式:

本插件适用多种方式集成,但必须应用unicloud 需要好友表 群表

插件页面详细分离,可以自己组合,更换页面,增加自己处理逻辑,在自己的项目复制包内页面相关文件即可 可以自己集成喜欢的ui 进行更改。

示例项目,单独划分了一块用户体系 账号全部添加 test_

音视频:

插件市场anySdk

导入离线Sdk到项目

unicloud:

上传 ,初始化,配置uni-mimc-cf 依赖 uni-id,uni-mimc

uni-config-center 配置增加 uni-mimc/config.json

{ "appId": "你自己的小米云", "appKey": "你自己的小米云", "appSecret": "你自己的小米云" }

rtc配置: yyx-im-frame\js_sdk\any-rtc\code.js 配置自己的appid 在anyRtc申请

unipush配置: uni-config-center 配置增加 uni-push/config.json { "getui": { "appId": "unipush申请", "appSecret": "unipush申请", "appkey": "unipush申请", "mastersecret": "unipush申请", "packageName": "unipush申请" } }

全局变量的增强:

由原本的vuex变更【可保留原有项目方式】,用法:

全局变量的实现

参照store-sample 文件夹内容,这是增强uni-starter的,不影响原有框架,且支持简易用法

必须:

main.js 文件的处理:

//增加

//增强复制粘贴功能

import '@/uni_modules/yyx-im-frame/js_sdk/ican-H5Api/ican-H5Api.js'

//vuex相关,简易VUEX存储设置,按照文件去增加自己项目,可以仅用于本插件,不影响原有VUEX方式

import store from '@/store';

let vuexStore = require("@/store/$u.mixin.js");

Vue.mixin(vuexStore);

//uview精简出来的js方法

import baseFrame from '@/uni_modules/yyx-im-frame/js_sdk/base-frame';

Vue.use(baseFrame);

//im基础应用,包含权限获取等

import im from '@/uni_modules/yyx-im-frame/js_sdk/im-frame/im'

Vue.prototype.$im = im;
App.vue 文件的处理:

//引入im框架

const imFrame = require('@/uni_modules/yyx-im-frame/js_sdk/im-frame/imFrame.js')

onLaunch: async function() {

    //已经登录的自动加载框架

    if(this.vuex_user){

        await imFrame.frame_init(this.vuex_user.username)

    }

    //APP端权限处理

    // #ifdef APP-PLUS

    plus.screen.lockOrientation('portrait-primary');

    this.$im.equipment();

    // #endif

}

onShow: function() {

    //设置框架是否后台推送

    if(imFrame.frame_is_init()){

        imFrame.frame_set_appShow(true)

    }

}

onHide: function() {

    //设置框架是否后台推送

    if(imFrame.frame_is_init()){

        imFrame.frame_set_appShow(false)

     }

}
uni-starter项目:

增加:

在pages\ucenter\login-page\common\loginSuccess.js文件内:

import context from '@/main.js';

const imFrame = require('@/uni_modules/yyx-im-frame/js_sdk/im-frame/imFrame.js')

export default async function(result) {

    //将用户信息放入vuex

    context.$u.vuex('vuex_user', result.userInfo);

    //加载通讯框架

    await imFrame.frame_init(result.userInfo.username)

    ..原有代码

}

非uni-starter项目:

1.仅推荐使用聊天页面,支持音视频和聊天,其他页面自行集成,如有定制联系

2.本应用读取账号 vuex_user.username ,昵称 vuex_user.nickname ,头像 vuex_user.avatar

3.需要通讯录等链接后端unicloud部分,改造基于进入参数即可

注册页面:

pages.json:

[{
            "path": "uni_modules/yyx-im-frame/pages/chat/session-list/session-list",
            "style": {
                "navigationBarTitleText": "消息",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/my/ucenter/ucenter",
            "style": {
                "navigationBarTitleText": "个人中心",
                "enablePullDownRefresh": false
            }

        }, {
            "path": "uni_modules/yyx-im-frame/pages/my/user-info/user-info",
            "style": {
                "navigationBarTitleText": "个人资料",
                "enablePullDownRefresh": false
            }

        }, {
            "path": "uni_modules/yyx-im-frame/pages/my/settings/settings",
            "style": {
                "navigationBarTitleText": "设置",
                "enablePullDownRefresh": false
            }

        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/contact-list/contact-list",
            "style": {
                "enablePullDownRefresh": true,
                "navigationBarTitleText": "通讯录",
                "app-plus": {
                    "titleNView": {
                        "buttons": [{
                            "text": "\ue203",
                            "fontSrc": "/static/uni.ttf",
                            "fontSize": "22px"
                        }]

                    }
                }

            }

        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/rtc-detail/chat-rtc-friend",
            "style": {
                "navigationBarTitleText": "音视频朋友细节",
                "navigationStyle": "custom"
            }

        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/rtc-detail/chat-rtc-group",
            "style": {
                "navigationBarTitleText": "音视频群细节",
                "navigationStyle": "custom"
            }

        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/group-create/group-create",
            "style": {
                "navigationBarTitleText": "创建群聊"
            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/group-detail/group-detail",
            "style": {
                "navigationBarTitleText": "群聊详情"
            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/group-member/group-member",
            "style": {
                "navigationBarTitleText": "群成员"

            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/group-delete-user/group-delete-user",
            "style": {
                "navigationBarTitleText": "删除"
            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/group-add-user/group-add-user",
            "style": {
                "navigationBarTitleText": "邀请"
            }
        }, {
            "path": "pages/list/list",
            "style": {
                "navigationStyle": "custom",
                "enablePullDownRefresh": true
            }
        },, {
            "path": "uni_modules/yyx-im-frame/pages/chat/user-detail/user-detail",
            "style": {
                "enablePullDownRefresh": true,
                "navigationBarTitleText": "详情"

            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/search-list/search-list",
            "style": {
                "navigationBarTitleText": "搜索朋友",
                "enablePullDownRefresh": true
            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/chat-record/chat-record",
            "style": {
                "navigationBarTitleText": "聊天记录",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "uni_modules/yyx-im-frame/pages/chat/chat-detail/chat-detail",
            "style": {
                "navigationBarTitleText": "临时会话",
                "app-plus": {
                    "bounce": "none", //禁止滚动
                    "titleNView": {
                        "backButton": {
                            "badgeColor": "#FFFFFF",
                            "badgeBackground": "#FF0000"
                        },
                        "buttons": [{
                            "type": "menu"
                        }]
                    }
                }
            }
}]

隐私、权限声明

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

录音,摄像头,推送

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

插件使用的 anyRtc SDK会采集数据

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

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