支持Android和iOS端,使用了野火UniApp原生插件(在UniApp的插件市场搜索“野火IM原生插件”)。
- 本项目使用的是原生语言插件,不支持鸿蒙 5.0,如果需要支持支持鸿蒙 5.0 的话,请使用uni-chat-uts项目
- 由于uni-app 官方已不在维护原生语言插件,建议迁移升级uni-chat-uts,该项目使用 uts 插件,支持平滑升级,上层不需要任何改动。
main
:基于Vue 3
开发,是未来的开发重心vue2
:基于Vue 2
开发,进入维护模式,不再开发新功能,鉴于Vue 2
已经终止支持且不再维护,建议客户升级到Vue 3
版本
野火在uni-chat项目上的音视频实现有2个方案:
- 方案1: 对应的插件是野火实时音视频RTC插件(原生UI), 使用原生UI,就是把Android平台和iOS平台的音视频SDK和UI代码全都集成到uni-chat项目中。这种方案的问题是引入的无关代码太多,且原生UI无法修改,跟uniapp互通也很不方便,不利于二次开发。
- 方案2:对应的插件是野火实时音视频RTC插件, 是使用原生的音视频SDK,但UI层使用nvue编写,UI和SDK使用uniapp插件的方式沟通。这种方案引入的SDK比较小,且修改方便,有利于大家做自定义相关 UI。
** 自 2023-11-29 起,uni-chat 将切换到方案 2,方案1 相关的代码,将保留到native-rtc-ui分支 **
本应用默认连接野火官方服务,也可以自己部署服务。如果想要私有部署服务,请按照 服务器快速部署 来部署服务到您自己的服务器。
- 插件市场搜索野火即时通讯IM插件 和 野火实时音视频RTC插件 ,并购买(插件是免费的!)
- HBuilderX 原生插件配置,选择云端插件,并选中购买的野火插件
- 如果使用野火官方服务,直接编译运行即可。如果使用自己私有部署IM服务,需要在config.js配置应用服务地址和IM服务地址。修改如下配置:
// 下面两个配置都要一起修复,否则登录进去之后,会马上退回登录界面 //应用服务地址 static APP_SERVER = 'http//wildfirechat.net:8888'; //IM 服务Host,不能包含 http 前缀或者端口 static IM_SERVER_HOST = 'wildfirechat.net';
- 运行
npm install
命令 - HBuilderX 制作自定义基座,可参考什么是自定义调试基座及使用说明
- HBuilderX,运行基座选择:自定义调试基座
- HBuilderX,运行到 Android App 基座 或 iOS App 基座
如果没有制作并运行到自定义基座,那么野火原生插件就没有集成进去,将无法使用野火原生插件,界面会显示白屏。所以一定要严格阿照上述步骤执行。
如果要在现有项目中使用野火原生插件,需要把wfc目录和config.js配置文件一同拷贝到现有项目,然后添加野火UniApp原生插件。现有项目使用wfc目录下的wfc.js接口文件。
默认附带免费版本音视频,关于野火音视频可以参考野火音视频使用说明和野火音视频简介。 如果使用音视频高级版,请参考音视频高级版切换方法。
Android
端,可以通过adb logcat > wfc.log
进行抓去日志,如果提示找不到adb
命令,请参考 这儿iOS
端,请连接Xcode
抓取
-
如果希望普通电话,能打断音视频通话,则需要在
package.json
里面,添加如下权限声明:<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
-
如何集成推送功能
HBuilder X
里面选中manifest.json
,然后选中Push
->uniPush 1.0
- 参考uni-push v1,并进行相关配置
- 编译、配置、部署 push server
App.vue
里面会调用plus.push.getClientInfoAsync
获取推送相关的clientId
,可以使用该clientId
在uni-push
后台测试推送功能。- 当设备不在线时,
im-server
会调用push-server
,然后push-server
调用个推
进行推送
-
打包失败:请确认是否执行过
npm install
命令。 -
iPhone上打开会话页面报错
SyntaxError: Invalid regular expression: invalid group specifier name __ERROR
anchorme
只能使用2.1.2
版本,不支持3.x
版本,可参数这个issue