Skip to content

wildfirechat/uni-chat-uts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

554 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

最重要的事,说三遍!!!

以下说明,仅针对 Android 端,iOS 端可以直接配置IM_SERVER_HOST,鸿蒙 SDK 是付费的,需要申请试用

因反诈合规要求,本项目协议栈默认仅支持连接野火官方服务,不能连接到自行部署的服务。如需获取不受限版本,请联系官方微信(wfchat 或 wildfirechat)免费申请。

严禁将本项目用于非法诈骗。

因反诈合规要求,本项目协议栈默认仅支持连接野火官方服务,不能连接到自行部署的服务。如需获取不受限版本,请联系官方微信(wfchat 或 wildfirechat)免费申请。

严禁将本项目用于非法诈骗。

因反诈合规要求,本项目协议栈默认仅支持连接野火官方服务,不能连接到自行部署的服务。如需获取不受限版本,请联系官方微信(wfchat 或 wildfirechat)免费申请。

严禁将本项目用于非法用途。

给您带来不便,敬请谅解。


野火uni-app uts demo

支持 Android、iOS 和 HarmonyOS 端

HarmonyOS 特别说明

  1. Android、iOS 端,是免费的
  2. 野火IM 鸿蒙 SDK 是需要付费的,鸿蒙 5.0 上,默认只能连到官方服务,需要申请试用才能连到自行部署的im-server
  3. 申请试用,具体请看 试用

关于音视频通话功能的重要说明

  1. HarmonyOS 平台上,暂不支持音视频通话,未来将提供 uts 插件方案的音视频通话能力
  2. Android、iOS 平台,支持音视频通话,但是是基于原生语言插件实现的,并且有两种方案
    1. 对应的插件是野火实时音视频RTC插件(原生UI), 使用原生UI,就是把Android平台和iOS平台的音视频SDK和UI代码全都集成到uni-chat项目中。这种方案的问题是引入的无关代码太多,且原生UI无法修改,跟uniapp互通也很不方便,不利于二次开发。
    2. 对应的插件是野火实时音视频RTC插件, 是使用原生的音视频SDK,但UI层使用nvue编写,UI和SDK使用uniapp插件的方式沟通。这种方案引入的SDK比较小,且修改方便,有利于大家做自定义相关 UI。
  3. 默认附带免费版本音视频,关于野火音视频可以参考野火音视频使用说明野火音视频简介。 如果需要使用音视频高级版,请参考音视频高级版切换方法

** 自 2023-11-29 起,已将音视频通话方案切换到方案 2,方案1 相关的代码,保留到uni-chat项目的native-rtc-ui分支 **

配置

  1. 野火IM uts插件 已包含在项目,一般不用特殊处理
  2. 插件市场搜索野火实时音视频RTC插件 ,并购买(插件是免费的!)
  3. HBuilderX 原生插件配置,选择云端插件,并选中购买的野火插件
  4. 如果使用野火官方服务,直接编译运行即可。如果使用自己私有部署IM服务,需要在config.js配置应用服务地址和IM服务地址。修改如下配置:
    // 下面两个配置都要一起修复,否则登录进去之后,会马上退回登录界面
    //应用服务地址
    static APP_SERVER = 'http//wildfirechat.net:8888';
    
    //IM 服务Host,不能包含 http 前缀或者端口,不支持设置端口,端口是写死的 80
    static IM_SERVER_HOST = 'wildfirechat.net';
    

运行

  1. 运行npm install命令
  2. HBuilderX 制作自定义基座,可参考什么是自定义调试基座及使用说明
  3. HBuilderX,运行基座选择:自定义调试基座
  4. HBuilderX,运行到 Android App 基座、iOS App 基座 或 鸿蒙

如果没有制作并运行到自定义基座,那么野火原生插件就没有集成进去,将无法使用野火原生插件,界面会显示白屏。所以一定要严格按照上述步骤执行。

部署服务端

本应用默认连接野火官方服务。私有化部署服务,请按照 服务器快速部署 来部署服务到您自己的服务器。

野火IM插件使用说明

有2种插件的使用方法,一种是基于野火提供的Demo直接进行二次开发;另外一种是把野火插件放到现有项目中。

集成到现有项目

  1. 下载野火IM uts插件,并导入到项目中。
  2. 把野火UniApp平台的demo中的wfc目录和配置文件config.js拷贝到现有工程中。
  3. 配置config.js中的IM服务和应用服务地址。
  4. 调用接口类wfc.js来使用野火插件。

源码地址

  1. Android 和 iOS uts 插件源码在uni-wfc-client 项目 uts 分支
  2. 本 demo 源码在demo源码工程

技术支持

如果遇到问题,可以去插件源码工程或者demo源码工程提issue,也可以去野火论坛发帖子问题,我们会尽快回复。谢谢大家的支持。

抓取原生插件的日志

  1. Android端,可以通过adb logcat > wfc.log进行抓去日志,如果提示找不到adb命令,请参考 这儿
  2. iOS端,请连接Xcode抓取
  3. HarmonyOs,请使用hdcDevEco Studio抓取

推送

由于需要支持鸿蒙,故只能使用 uniPush 2.0

  1. HBuilder X里面选中manifest.json,然后安卓/iOS模板配置 -> Push-> uniPush 2.0 -> 离线推送(并选中需要支持的手机品牌)
  2. 参考uni-push v2,并进行相关配置,包括开通服务空间等。
  3. HBuilder X里面,选中uniCloud,右键 -> 关联云服务空间或项目(目前使用的是阿里云)
  4. HBuilder X里面,选中uniCloud/database,右键 -> 上传所有 DB Schema(含扩展)
  5. HBuilder X里面,选中uniCloud/cloudfunctions/wf-push-url,右键 -> 运行本地云函数,查看日志收到推送消息
  6. HBuilder X里面,选中uniCloud/cloudfunctions/wf-push-url,右键 -> 上传部署
  7. 进入服务空间后台,云函数列表,添加域名
  8. 进入服务空间,云函数/云对象 -> 云函数/云对象, 点击wf-push-url,云函数 URL 化,设置 URL 的 PATH 部分为/push
  9. 可通过 postman,或者 curl 进行测试,地址是 http(s)://${上面添加的域名}/push
    curl --location 'http://{你添加的域名}/push' \
    --header 'X-User-Id: 你的用户 id' \
    --header 'Content-Type: application/json' \
    --data '{
        "clientId": "your push clientId, 应用启动的时候会打印出来",
        "title": "test push title",
        "content": "test push content",
        "payload": {
            "test": "test payload"
        },
        "category": {
            "harmony": "IM",
            "huawei": "IM",
            "vivo": "IM"
        }
    }'
    
  10. 编译、配置、部署 push server
  11. App.vue 里面会调用plus.push.getClientInfoAsync获取推送相关的clientId,可以使用该clientIduni-push后台测试推送功能。
  12. 当设备不在线时,im-server会调用push-server,然后push-server调用uniCloud进行推送

常见问题说明

  1. 如果希望普通电话,能打断音视频通话,则需要在package.json里面,添加如下权限声明:

       <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
  2. 打包失败:请确认是否执行过npm install命令。

  3. iPhone上打开会话页面报错SyntaxError: Invalid regular expression: invalid group specifier name __ERROR

    anchorme只能使用2.1.2版本,不支持3.x版本,可参数这个issue

应用截图

会话列表 会话列表

联系人列表 联系人列表

会话界面 会话界面

用户详情界面 用户详情界面

About

野火IM 在uni-app平台的移动客户端Demo,支持 Android、iOS、HarmonyOS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors