diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..cecaf72
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1770205618468
+
+
+ 1770205618468
+
+
+
+
+
+
+ 1770218264881
+
+
+
+ 1770218264881
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/App.vue b/App.vue
index 47e716a..7722c59 100644
--- a/App.vue
+++ b/App.vue
@@ -11,8 +11,6 @@
TUIChatKit.init()
-
-
const { token, tencentUserSig } = useAuthUser()
const { loginTencentIM } = useUserStore()
/** 静默登录逻辑 */
diff --git a/TUIKit/components/TUIChat/message-input-toolbar/call-view/index.vue b/TUIKit/components/TUIChat/message-input-toolbar/call-view/index.vue
index a70ac4e..c2eb822 100644
--- a/TUIKit/components/TUIChat/message-input-toolbar/call-view/index.vue
+++ b/TUIKit/components/TUIChat/message-input-toolbar/call-view/index.vue
@@ -1,125 +1,125 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
+ ">
+ 接听
+
+
+
-
+
\ No newline at end of file
diff --git a/assets/developer-console-appkey.png b/assets/developer-console-appkey.png
new file mode 100644
index 0000000..3873135
Binary files /dev/null and b/assets/developer-console-appkey.png differ
diff --git a/assets/phone.png b/assets/phone.png
new file mode 100644
index 0000000..aad877d
Binary files /dev/null and b/assets/phone.png differ
diff --git a/js_sdk/wa-permission/permission.js b/js_sdk/wa-permission/permission.js
new file mode 100644
index 0000000..501cab4
--- /dev/null
+++ b/js_sdk/wa-permission/permission.js
@@ -0,0 +1,272 @@
+/**
+ * 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启
+ */
+
+var isIos
+// #ifdef APP-PLUS
+isIos = (plus.os.name == "iOS")
+// #endif
+
+// 判断推送权限是否开启
+function judgeIosPermissionPush() {
+ var result = false;
+ var UIApplication = plus.ios.import("UIApplication");
+ var app = UIApplication.sharedApplication();
+ var enabledTypes = 0;
+ if (app.currentUserNotificationSettings) {
+ var settings = app.currentUserNotificationSettings();
+ enabledTypes = settings.plusGetAttribute("types");
+ console.log("enabledTypes1:" + enabledTypes);
+ if (enabledTypes == 0) {
+ console.log("推送权限没有开启");
+ } else {
+ result = true;
+ console.log("已经开启推送功能!")
+ }
+ plus.ios.deleteObject(settings);
+ } else {
+ enabledTypes = app.enabledRemoteNotificationTypes();
+ if (enabledTypes == 0) {
+ console.log("推送权限没有开启!");
+ } else {
+ result = true;
+ console.log("已经开启推送功能!")
+ }
+ console.log("enabledTypes2:" + enabledTypes);
+ }
+ plus.ios.deleteObject(app);
+ plus.ios.deleteObject(UIApplication);
+ return result;
+}
+
+// 判断定位权限是否开启
+function judgeIosPermissionLocation() {
+ var result = false;
+ var cllocationManger = plus.ios.import("CLLocationManager");
+ var status = cllocationManger.authorizationStatus();
+ result = (status != 2)
+ console.log("定位权限开启:" + result);
+ // 以下代码判断了手机设备的定位是否关闭,推荐另行使用方法 checkSystemEnableLocation
+ /* var enable = cllocationManger.locationServicesEnabled();
+ var status = cllocationManger.authorizationStatus();
+ console.log("enable:" + enable);
+ console.log("status:" + status);
+ if (enable && status != 2) {
+ result = true;
+ console.log("手机定位服务已开启且已授予定位权限");
+ } else {
+ console.log("手机系统的定位没有打开或未给予定位权限");
+ } */
+ plus.ios.deleteObject(cllocationManger);
+ return result;
+}
+
+// 判断麦克风权限是否开启
+function judgeIosPermissionRecord() {
+ var result = false;
+ var avaudiosession = plus.ios.import("AVAudioSession");
+ var avaudio = avaudiosession.sharedInstance();
+ var permissionStatus = avaudio.recordPermission();
+ console.log("permissionStatus:" + permissionStatus);
+ if (permissionStatus == 1684369017 || permissionStatus == 1970168948) {
+ console.log("麦克风权限没有开启");
+ } else {
+ result = true;
+ console.log("麦克风权限已经开启");
+ }
+ plus.ios.deleteObject(avaudiosession);
+ return result;
+}
+
+// 判断相机权限是否开启
+function judgeIosPermissionCamera() {
+ var result = false;
+ var AVCaptureDevice = plus.ios.import("AVCaptureDevice");
+ var authStatus = AVCaptureDevice.authorizationStatusForMediaType('vide');
+ console.log("authStatus:" + authStatus);
+ if (authStatus == 3) {
+ result = true;
+ console.log("相机权限已经开启");
+ } else {
+ console.log("相机权限没有开启");
+ }
+ plus.ios.deleteObject(AVCaptureDevice);
+ return result;
+}
+
+// 判断相册权限是否开启
+function judgeIosPermissionPhotoLibrary() {
+ var result = false;
+ var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");
+ var authStatus = PHPhotoLibrary.authorizationStatus();
+ console.log("authStatus:" + authStatus);
+ if (authStatus == 3) {
+ result = true;
+ console.log("相册权限已经开启");
+ } else {
+ console.log("相册权限没有开启");
+ }
+ plus.ios.deleteObject(PHPhotoLibrary);
+ return result;
+}
+
+// 判断通讯录权限是否开启
+function judgeIosPermissionContact() {
+ var result = false;
+ var CNContactStore = plus.ios.import("CNContactStore");
+ var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0);
+ if (cnAuthStatus == 3) {
+ result = true;
+ console.log("通讯录权限已经开启");
+ } else {
+ console.log("通讯录权限没有开启");
+ }
+ plus.ios.deleteObject(CNContactStore);
+ return result;
+}
+
+// 判断日历权限是否开启
+function judgeIosPermissionCalendar() {
+ var result = false;
+ var EKEventStore = plus.ios.import("EKEventStore");
+ var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0);
+ if (ekAuthStatus == 3) {
+ result = true;
+ console.log("日历权限已经开启");
+ } else {
+ console.log("日历权限没有开启");
+ }
+ plus.ios.deleteObject(EKEventStore);
+ return result;
+}
+
+// 判断备忘录权限是否开启
+function judgeIosPermissionMemo() {
+ var result = false;
+ var EKEventStore = plus.ios.import("EKEventStore");
+ var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1);
+ if (ekAuthStatus == 3) {
+ result = true;
+ console.log("备忘录权限已经开启");
+ } else {
+ console.log("备忘录权限没有开启");
+ }
+ plus.ios.deleteObject(EKEventStore);
+ return result;
+}
+
+// Android权限查询
+function requestAndroidPermission(permissionID) {
+ return new Promise((resolve, reject) => {
+ plus.android.requestPermissions(
+ [permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
+ function(resultObj) {
+ var result = 0;
+ for (var i = 0; i < resultObj.granted.length; i++) {
+ var grantedPermission = resultObj.granted[i];
+ console.log('已获取的权限:' + grantedPermission);
+ result = 1
+ }
+ for (var i = 0; i < resultObj.deniedPresent.length; i++) {
+ var deniedPresentPermission = resultObj.deniedPresent[i];
+ console.log('拒绝本次申请的权限:' + deniedPresentPermission);
+ result = 0
+ }
+ for (var i = 0; i < resultObj.deniedAlways.length; i++) {
+ var deniedAlwaysPermission = resultObj.deniedAlways[i];
+ console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
+ result = -1
+ }
+ resolve(result);
+ // 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
+ // if (result != 1) {
+ // gotoAppPermissionSetting()
+ // }
+ },
+ function(error) {
+ console.log('申请权限错误:' + error.code + " = " + error.message);
+ resolve({
+ code: error.code,
+ message: error.message
+ });
+ }
+ );
+ });
+}
+
+// 使用一个方法,根据参数判断权限
+function judgeIosPermission(permissionID) {
+ if (permissionID == "location") {
+ return judgeIosPermissionLocation()
+ } else if (permissionID == "camera") {
+ return judgeIosPermissionCamera()
+ } else if (permissionID == "photoLibrary") {
+ return judgeIosPermissionPhotoLibrary()
+ } else if (permissionID == "record") {
+ return judgeIosPermissionRecord()
+ } else if (permissionID == "push") {
+ return judgeIosPermissionPush()
+ } else if (permissionID == "contact") {
+ return judgeIosPermissionContact()
+ } else if (permissionID == "calendar") {
+ return judgeIosPermissionCalendar()
+ } else if (permissionID == "memo") {
+ return judgeIosPermissionMemo()
+ }
+ return false;
+}
+
+// 跳转到**应用**的权限页面
+function gotoAppPermissionSetting() {
+ if (isIos) {
+ var UIApplication = plus.ios.import("UIApplication");
+ var application2 = UIApplication.sharedApplication();
+ var NSURL2 = plus.ios.import("NSURL");
+ // var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
+ var setting2 = NSURL2.URLWithString("app-settings:");
+ application2.openURL(setting2);
+
+ plus.ios.deleteObject(setting2);
+ plus.ios.deleteObject(NSURL2);
+ plus.ios.deleteObject(application2);
+ } else {
+ // console.log(plus.device.vendor);
+ var Intent = plus.android.importClass("android.content.Intent");
+ var Settings = plus.android.importClass("android.provider.Settings");
+ var Uri = plus.android.importClass("android.net.Uri");
+ var mainActivity = plus.android.runtimeMainActivity();
+ var intent = new Intent();
+ intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
+ intent.setData(uri);
+ mainActivity.startActivity(intent);
+ }
+}
+
+// 检查系统的设备服务是否开启
+// var checkSystemEnableLocation = async function () {
+function checkSystemEnableLocation() {
+ if (isIos) {
+ var result = false;
+ var cllocationManger = plus.ios.import("CLLocationManager");
+ var result = cllocationManger.locationServicesEnabled();
+ console.log("系统定位开启:" + result);
+ plus.ios.deleteObject(cllocationManger);
+ return result;
+ } else {
+ var context = plus.android.importClass("android.content.Context");
+ var locationManager = plus.android.importClass("android.location.LocationManager");
+ var main = plus.android.runtimeMainActivity();
+ var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
+ var result = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER);
+ console.log("系统定位开启:" + result);
+ return result
+ }
+}
+
+export default {
+ judgeIosPermission: judgeIosPermission,
+ requestAndroidPermission: requestAndroidPermission,
+ checkSystemEnableLocation: checkSystemEnableLocation,
+ gotoAppPermissionSetting: gotoAppPermissionSetting
+}
diff --git a/manifest.json b/manifest.json
index 9892f89..3e59dec 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,6 +1,6 @@
{
"name" : "密谈IM",
- "appid" : "__UNI__D40A151",
+ "appid" : "__UNI__BE00EFC",
"description" : "",
"versionName" : "1.1.2",
"versionCode" : 111,
@@ -139,6 +139,20 @@
"pid" : "9227",
"parameters" : {}
}
+ },
+ "RongCloud-Beauty" : {
+ "__plugin_info__" : {
+ "name" : "RCUniBeauty",
+ "description" : "融云基础版美颜插件,服务于 RCUniRtc 或 RCUniCall",
+ "platforms" : "Android,iOS",
+ "url" : "https://ext.dcloud.net.cn/plugin?id=7982",
+ "android_package_name" : "com.audio.im",
+ "ios_bundle_id" : "",
+ "isCloud" : true,
+ "bought" : 1,
+ "pid" : "7982",
+ "parameters" : {}
+ }
}
}
},
diff --git a/pages.json b/pages.json
index 9ace560..33996f2 100644
--- a/pages.json
+++ b/pages.json
@@ -441,6 +441,17 @@
}
}
},
+ {
+ "path" : "pages/room/room",
+ "style" :
+ {
+ "navigationBarTitleText": "Room",
+ "enablePullDownRefresh": false,
+ "navigationStyle":"custom",
+ "gestureBack":"NO"
+ }
+
+ },
// #endif
// #ifdef H5
{
diff --git a/pages/room/room.nvue b/pages/room/room.nvue
new file mode 100644
index 0000000..9aa6a5c
--- /dev/null
+++ b/pages/room/room.nvue
@@ -0,0 +1,712 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 邀请
+
+
+ {{curCamera?'关闭':'开启'}}摄像头
+
+
+ 切换摄像头
+
+
+ {{isMicrophone?'关闭':'开启'}}麦克风
+
+
+ {{isEnableSpeaker?'关闭':'开启'}}扬声器
+
+
+ 美颜
+
+
+
+ 挂断
+ 切换语音
+
+
+
+ 被邀请者ID:
+
+
+ 必填;需加入群后,方可收到邀请,多个userId用英文半角逗号分开
+
+
+
+
+
+
+
+
+
+
+
+ 美颜{{isChecked?'开启':'关闭'}}
+
+
+ X
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.text}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/stores/user.js b/stores/user.js
index 39976a7..309f7e0 100644
--- a/stores/user.js
+++ b/stores/user.js
@@ -1,230 +1,334 @@
-import { defineStore } from 'pinia'
import {
- getToken,
- getUserInfoData,
- setUserInfoData,
- removeUserInfoData,
- getSig,
- setSig,
- removeSig,
- getFontSize,
- setFontSize,
- removeFontSize
+ defineStore
+} from 'pinia'
+import {
+ getToken,
+ getUserInfoData,
+ setUserInfoData,
+ removeUserInfoData,
+ getSig,
+ setSig,
+ removeSig,
+ getFontSize,
+ setFontSize,
+ removeFontSize
} from '@/utils/storage'
// #ifdef APP-PLUS
-import { useLoginState } from '@/uni_modules/tuikit-atomic-x/state/LoginState'
+import {
+ useLoginState
+} from '@/uni_modules/tuikit-atomic-x/state/LoginState'
+import * as CallLib from "@/uni_modules/RongCloud-CallWrapper/lib/index"
import RCIMIWEngine from '@/uni_modules/RongCloud-IMWrapper-V2/js_sdk/RCIMEngine'
+import permision from "@/js_sdk/wa-permission/permission.js"
+import {reasonDeal,errorDeal,imCode} from '@/utils/code.js'
// #endif
// #ifdef H5
-import { useLoginState } from 'tuikit-atomicx-vue3'
+import {
+ useLoginState
+} from 'tuikit-atomicx-vue3'
// #endif
-import { useTokenStore } from './token'
-import { getUserData, userLogout, updateUserData } from '@/api'
-import { ref } from 'vue'
-import { useUI } from '@/utils/use-ui'
-import { reLaunch } from '@/utils/router'
-import { getTencentUserSig } from '@/api'
-import { TUILogin } from '@tencentcloud/tui-core-lite'
-import { TUIChatEngine } from '@tencentcloud/chat-uikit-engine-lite'
-import { getUserIntegral } from '@/api/my-index'
-import { removeFriendList, removeGroupList } from '../utils/storage'
-import { getRongYunLoginInfo } from '../api'
+import {
+ useTokenStore
+} from './token'
+import {
+ getUserData,
+ userLogout,
+ updateUserData
+} from '@/api'
+import {
+ ref
+} from 'vue'
+import {
+ useUI
+} from '@/utils/use-ui'
+import {
+ reLaunch
+} from '@/utils/router'
+import {
+ getTencentUserSig
+} from '@/api'
+import {
+ TUILogin
+} from '@tencentcloud/tui-core-lite'
+import {
+ TUIChatEngine
+} from '@tencentcloud/chat-uikit-engine-lite'
+import {
+ getUserIntegral
+} from '@/api/my-index'
+import {
+ removeFriendList,
+ removeGroupList
+} from '../utils/storage'
+import {
+ getRongYunLoginInfo
+} from '../api'
export const useUserStore = defineStore('user', () => {
- const { clearToken } = useTokenStore()
- const { showDialog, showToast } = useUI()
+ const {
+ clearToken
+ } = useTokenStore()
+ const {
+ showDialog,
+ showToast
+ } = useUI()
- const userInfo = ref(
- getUserInfoData() ? JSON?.parse(getUserInfoData()) : {}
- )
- /** 用户字体大小 */
- const fontSizeData = ref(getFontSize())
+ const userInfo = ref(
+ getUserInfoData() ? JSON?.parse(getUserInfoData()) : {}
+ )
+ /** 用户字体大小 */
+ const fontSizeData = ref(getFontSize())
- /** 腾讯 IM 存储数据 */
- const tencentUserSig = ref(getSig() ? JSON?.parse(getSig()) : {})
+ /** 腾讯 IM 存储数据 */
+ const tencentUserSig = ref(getSig() ? JSON?.parse(getSig()) : {})
- /** 用户积分数 */
- const integralData = ref(0)
+ /** 用户积分数 */
+ const integralData = ref(0)
+ const imEngine = ref(null)
- /**
- * 获取用户信息(可从缓存或接口)
- */
- const fetchUserInfo = async () => {
- // 尝试从本地缓存读取
- const cachedToken = getToken()
- const cachedUserInfo = getUserInfoData()
- const cachedSig = getSig()
+ /**
+ * 获取用户信息(可从缓存或接口)
+ */
+ const fetchUserInfo = async () => {
+ // 尝试从本地缓存读取
+ const cachedToken = getToken()
+ const cachedUserInfo = getUserInfoData()
+ const cachedSig = getSig()
- if (cachedToken && cachedUserInfo) {
- userInfo.value = JSON.parse(cachedUserInfo)
- tencentUserSig.value = JSON.parse(cachedSig)
- loginTencentIM()
- return
- }
- await getIntegral()
- const res = await getUserData()
- await setUserInfo(res.data)
- loginTencentIM()
- return
- }
+ if (cachedToken && cachedUserInfo) {
+ userInfo.value = JSON.parse(cachedUserInfo)
+ tencentUserSig.value = JSON.parse(cachedSig)
+ loginTencentIM()
+ return
+ }
+ await getIntegral()
+ const res = await getUserData()
+ await setUserInfo(res.data)
+ loginTencentIM()
+ return
+ }
- /**
- * 设置用户信息
- */
- const setUserInfo = async data => {
- const res = await getTencentUserSig()
- const ryData = await getRongYunLoginInfo()
- const IM_DATA = {
- ...res.data,
- ...ryData.data
- }
- tencentUserSig.value = IM_DATA
- userInfo.value = data
- setUserInfoData(data)
- setSig(IM_DATA)
- }
+ /**
+ * 设置用户信息
+ */
+ const setUserInfo = async data => {
+ const res = await getTencentUserSig()
+ const ryData = await getRongYunLoginInfo()
+ const IM_DATA = {
+ ...res.data,
+ ...ryData.data
+ }
+ tencentUserSig.value = IM_DATA
+ userInfo.value = data
+ setUserInfoData(data)
+ setSig(IM_DATA)
+ }
- /** 获取用户积分 */
- const getIntegral = async () => {
- const res = await getUserIntegral()
- integralData.value = res.data.availablePoints
- }
+ /** 获取用户积分 */
+ const getIntegral = async () => {
+ const res = await getUserIntegral()
+ integralData.value = res.data.availablePoints
+ }
- /**
- * 登录腾讯 IM
- */
- const loginTencentIM = async () => {
- await refreshUserInfo()
- await TUILogin.login({
- SDKAppID: tencentUserSig.value.sdkappID,
- userID: tencentUserSig.value.userId,
- userSig: tencentUserSig.value.userSig,
- framework: `vue3`
- })
+ /**
+ * 登录腾讯 IM
+ */
+ const loginTencentIM = async () => {
+ await refreshUserInfo()
+ await TUILogin.login({
+ SDKAppID: tencentUserSig.value.sdkappID,
+ userID: tencentUserSig.value.userId,
+ userSig: tencentUserSig.value.userSig,
+ framework: `vue3`
+ })
- await TUIChatEngine.login({
- SDKAppID: tencentUserSig.value.sdkappID,
- userID: tencentUserSig.value.userId,
- userSig: tencentUserSig.value.userSig,
- useUploadPlugin: true // 使用文件上传插件
- })
- // #ifdef H5
- await useLoginState().login({
- SDKAppID: tencentUserSig.value.sdkappID,
- userID: tencentUserSig.value.userId,
- userSig: tencentUserSig.value.userSig
- })
- // #endif
+ await TUIChatEngine.login({
+ SDKAppID: tencentUserSig.value.sdkappID,
+ userID: tencentUserSig.value.userId,
+ userSig: tencentUserSig.value.userSig,
+ useUploadPlugin: true // 使用文件上传插件
+ })
+ // #ifdef H5
+ await useLoginState().login({
+ SDKAppID: tencentUserSig.value.sdkappID,
+ userID: tencentUserSig.value.userId,
+ userSig: tencentUserSig.value.userSig
+ })
+ // #endif
- // #ifdef APP-PLUS
- await useLoginState().login({
- sdkAppID: tencentUserSig.value.sdkappID,
- userID: tencentUserSig.value.userId,
- userSig: tencentUserSig.value.userSig
- })
- console.log(tencentUserSig.value.appKey, '====')
- await RCIMIWEngine.create(tencentUserSig.value.appKey, {
- kickReconnectDevice: true,
- logLevel: 'debug'
- }).then(
- res => {
- //本地代码保存引擎
- console.log(res, '====')
- }
- ).catch(err => {
- console.log(err, '====')
- })
- // #endif
- }
+ // #ifdef APP-PLUS
+ await useLoginState().login({
+ sdkAppID: tencentUserSig.value.sdkappID,
+ userID: tencentUserSig.value.userId,
+ userSig: tencentUserSig.value.userSig
+ })
+ console.log(tencentUserSig.value.appKey, '====')
+ connectIM()
+ // #endif
+ }
- /**
- * 清除用户信息(退出登录)
- */
- const clearUserInfo = async () => {
- const show = await showDialog('提示', '确定要退出登录吗?')
- if (show) {
- await logout()
- }
- }
+ //连接融云IM
+ async function connectIM() {
+ const options = {
+ naviServer: ''
+ }
+ imEngine.value = await RCIMIWEngine.create(tencentUserSig.value.appKey, options)
+ imEngine.value.setOnConnectedListener((res) => {
+ if (res.code != 0) {
+ uni.hideLoading();
+ uni.showToast({
+ title: 'OnCon:' + res.code,
+ icon: 'error'
+ })
+ return
+ }
+ //连接成功
+ CallLib.init({});
+ onAllListeners()
+ console.log('call.init')
+ // this.libPage = true;
+ // this.loginUserId = res.userId;
+ uni.hideLoading();
+ uni.showToast({
+ title: res.userId
+ });
+ if (uni.getSystemInfoSync().platform === 'android') {
+ permision.requestAndroidPermission('android.permission.CAMERA');
+ permision.requestAndroidPermission('android.permission.RECORD_AUDIO');
+ }
+ });
+ let code = await imEngine.value.connect(tencentUserSig.value.ryToken, 10)
+ if (code != 0) {
+ uni.hideLoading();
+ uni.showToast({
+ title: 'connect:' + code,
+ icon: 'error'
+ })
+ }
+ }
+
+ function onAllListeners(){
+ CallLib.onCallReceived(res => {
+ console.log(res)
+ console.log(
+ 'Engine:OnCallReceived=>' + '监听通话呼入, 目标id=>',
+ res.data.targetId
+ )
+ })
+
+ CallLib.onCallConnected(res => {
+ console.log(res)
+ console.log(
+ 'Engine:OnCallConnected=>' +
+ '已建立通话通话接通时,通过回调 onCallConnected 通知当前 call 的详细信息',
+ res
+ )
+ })
+
+ CallLib.onRemoteUserJoined(res => {
+ console.log(
+ 'Engine:OnRemoteUserJoined=>' +
+ '主叫端拨出电话,被叫端收到请求后,加入通话,被叫端Id为=>',
+ res.data.userId
+ )
+ })
+
+ CallLib.onCallDisconnected(res => {
+ console.log(
+ 'Engine:OnCallDisconnected=>' + '挂断成功, 挂断原因=>',
+ res.data.reason
+ )
+ })
+ }
- /**
- * 退出登录(不带提示)
- */
- const logout = async () => {
- if (!userInfo.value) return
- try {
- userInfo.value = null
+ /**
+ * 清除用户信息(退出登录)
+ */
+ const clearUserInfo = async () => {
+ const show = await showDialog('提示', '确定要退出登录吗?')
+ if (show) {
+ await logout()
+ }
+ }
- await userLogout()
- await TUILogin.logout()
- await TUIChatEngine.logout()
- // #ifdef APP-PLUS
- removeFriendList()
- removeGroupList()
- await useLoginState().logout()
- // #endif
- // #ifdef H5
- await useLoginState().logout()
- // #endif
- clearAllUserInfo()
- await showToast('退出登录成功', 'success')
- reLaunch('/pages/login/login')
- } catch (error) {
- clearAllUserInfo()
- await showToast('退出登录成功', 'success')
- reLaunch('/pages/login/login')
- }
- }
+ /**
+ * 退出登录(不带提示)
+ */
+ const logout = async () => {
+ if (!userInfo.value) return
+ try {
+ userInfo.value = null
- /** 清空所有用户缓存 */
- const clearAllUserInfo = async () => {
- userInfo.value = null
- tencentUserSig.value = null
- fontSizeData.value = 26
- clearToken()
- removeUserInfoData()
- removeSig()
- removeFontSize()
- }
+ await userLogout()
+ await TUILogin.logout()
+ await TUIChatEngine.logout()
+ // #ifdef APP-PLUS
+ removeFriendList()
+ removeGroupList()
+ await useLoginState().logout()
+ // #endif
+ // #ifdef H5
+ await useLoginState().logout()
+ // #endif
+ clearAllUserInfo()
+ await showToast('退出登录成功', 'success')
+ reLaunch('/pages/login/login')
+ } catch (error) {
+ clearAllUserInfo()
+ await showToast('退出登录成功', 'success')
+ reLaunch('/pages/login/login')
+ }
+ }
- /** 刷新用户信息(如用户信息被修改) */
- const refreshUserInfo = async () => {
- const res = await getUserData()
- await getIntegral()
- await setUserInfoData(res.data)
- userInfo.value = res.data
- }
+ /** 清空所有用户缓存 */
+ const clearAllUserInfo = async () => {
+ userInfo.value = null
+ tencentUserSig.value = null
+ fontSizeData.value = 26
+ clearToken()
+ removeUserInfoData()
+ removeSig()
+ removeFontSize()
+ }
- /**
- * 更新部分用户信息(例如昵称、头像)
- */
- const updateUserInfo = async partialData => {
- if (!userInfo.value) return
- await updateUserData(partialData)
- await refreshUserInfo()
- }
+ /** 刷新用户信息(如用户信息被修改) */
+ const refreshUserInfo = async () => {
+ const res = await getUserData()
+ await getIntegral()
+ await setUserInfoData(res.data)
+ userInfo.value = res.data
+ }
- /** 更新字体大小 */
- const updateFontSize = async fontSize => {
- fontSizeData.value = fontSize
- setFontSize(fontSize)
- }
+ /**
+ * 更新部分用户信息(例如昵称、头像)
+ */
+ const updateUserInfo = async partialData => {
+ if (!userInfo.value) return
+ await updateUserData(partialData)
+ await refreshUserInfo()
+ }
- return {
- userInfo,
- integralData,
- tencentUserSig,
- fontSizeData,
- getIntegral,
- clearAllUserInfo,
- updateFontSize,
- logout,
- refreshUserInfo,
- fetchUserInfo,
- loginTencentIM,
- setUserInfo,
- clearUserInfo,
- updateUserInfo
- }
-})
+ /** 更新字体大小 */
+ const updateFontSize = async fontSize => {
+ fontSizeData.value = fontSize
+ setFontSize(fontSize)
+ }
+
+ return {
+ userInfo,
+ integralData,
+ tencentUserSig,
+ fontSizeData,
+ getIntegral,
+ clearAllUserInfo,
+ updateFontSize,
+ logout,
+ refreshUserInfo,
+ fetchUserInfo,
+ loginTencentIM,
+ setUserInfo,
+ clearUserInfo,
+ updateUserInfo
+ }
+})
\ No newline at end of file
diff --git a/uni_modules/RongCloud-CallWrapper/lib/index.js b/uni_modules/RongCloud-CallWrapper/lib/index.js
index 9c8d0a6..2f992f3 100644
--- a/uni_modules/RongCloud-CallWrapper/lib/index.js
+++ b/uni_modules/RongCloud-CallWrapper/lib/index.js
@@ -4,9 +4,6 @@
* Tue Dec 02 2025 16:50:41 GMT+0800 (China Standard Time)
* ©2020 RongCloud, Inc. All rights reserved.
*/
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
class Logger {
tag;
@@ -18,417 +15,391 @@ class Logger {
log(str) {
console.log(`[${this.tag}] ${new Date().toISOString()} ${str}`);
}
-
}
+
const logger = new Logger('RCUNICallLib');
-exports.RCCallIWCamera = void 0;
+// 枚举定义
+export const RCCallIWCamera = {
+ NONE: 0,
+ FRONT: 1,
+ BACK: 2
+};
-(function (RCCallIWCamera) {
- RCCallIWCamera[RCCallIWCamera["NONE"] = 0] = "NONE";
- RCCallIWCamera[RCCallIWCamera["FRONT"] = 1] = "FRONT";
- RCCallIWCamera[RCCallIWCamera["BACK"] = 2] = "BACK";
-})(exports.RCCallIWCamera || (exports.RCCallIWCamera = {}));
+export const RCCallIWMediaType = {
+ AUDIO: 0,
+ AUDIO_VIDEO: 1
+};
-exports.RCCallIWMediaType = void 0;
+export const RCUNICallErrorCode = {
+ SUCCESS: 0,
+ ENGINE_NOT_FOUND: 1,
+ NETWORK_UNAVAILABLE: 2,
+ ONE_CALL_EXISTED: 3,
+ OPERATION_UNAVAILABLE: 4,
+ INVALID_PARAM: 5,
+ NETWORK_UNSTABLE: 6,
+ MEDIA_REQUEST_FAILED: 7,
+ MEDIA_SERVER_NOT_READY: 8,
+ MEDIA_SERVER_NOT_INITIALIZED: 9,
+ MEDIA_REQUEST_TIMEOUT: 10,
+ MEDIA_UNKOWN_ERROR: 11,
+ MEDIA_KICKED_BY_SERVER_ERROR: 12,
+ MEDIA_SERVER_CLOSED_ERROR: 13,
+ MEDIA_SERVER_PUBLISH_ERROR: 14,
+ MEDIA_SERVER_SUBSCRIBE_ERROR: 15,
+ MEDIA_JOIN_ROOM_REFUSE_ERROR: 16
+};
-(function (RCCallIWMediaType) {
- RCCallIWMediaType[RCCallIWMediaType["AUDIO"] = 0] = "AUDIO";
- RCCallIWMediaType[RCCallIWMediaType["AUDIO_VIDEO"] = 1] = "AUDIO_VIDEO";
-})(exports.RCCallIWMediaType || (exports.RCCallIWMediaType = {}));
+export const RCCallIWCallDisconnectedReason = {
+ CANCEL: 0,
+ REJECT: 1,
+ HANGUP: 2,
+ BUSY_LINE: 3,
+ NO_RESPONSE: 4,
+ ENGINE_UNSUPPORTED: 5,
+ NETWORK_ERROR: 6,
+ RESOURCE_GET_ERROR: 7,
+ RESOURCE_PUBLISH_ERROR: 8,
+ RESOURCE_SUBSCRIBE_ERROR: 9,
+ REMOTE_CANCEL: 10,
+ REMOTE_REJECT: 11,
+ REMOTE_HANGUP: 12,
+ REMOTE_BUSY_LINE: 13,
+ REMOTE_NO_RESPONSE: 14,
+ REMOTE_ENGINE_UNSUPPORTED: 15,
+ REMOTE_NETWORK_ERROR: 16,
+ REMOTE_RESOURCE_GET_ERROR: 17,
+ REMOTE_RESOURCE_PUBLISH_ERROR: 18,
+ REMOTE_RESOURCE_SUBSCRIBE_ERROR: 19,
+ KICKED_BY_OTHER_CALL: 20,
+ IN_OTHER_CALL: 21,
+ KICKED_BY_SERVER: 22,
+ REMOTE_KICKED_BY_OTHER_CALL: 23,
+ REMOTE_IN_OTHER_CALL: 24,
+ REMOTE_KICKED_BY_SERVER: 25,
+ ACCEPT_BY_OTHER_CLIENT: 26,
+ HANGUP_BY_OTHER_CLIENT: 27,
+ REJECTED_BY_BLACKLIST: 28,
+ SERVICE_NOT_OPENED: 29,
+ DROP_TO_OBSERVER: 30,
+ INIT_VIDEO_ERROR: 31,
+ OTHER_DEVICE_HAD_ACCEPTED: 32,
+ SERVICE_DISCONNECTED: 33
+};
-exports.RCUNICallErrorCode = void 0;
+export const RCCallIWAudioCodecType = {
+ PCMU: 0,
+ OPUS: 111
+};
-(function (RCUNICallErrorCode) {
- RCUNICallErrorCode[RCUNICallErrorCode["SUCCESS"] = 0] = "SUCCESS";
- RCUNICallErrorCode[RCUNICallErrorCode["ENGINE_NOT_FOUND"] = 1] = "ENGINE_NOT_FOUND";
- RCUNICallErrorCode[RCUNICallErrorCode["NETWORK_UNAVAILABLE"] = 2] = "NETWORK_UNAVAILABLE";
- RCUNICallErrorCode[RCUNICallErrorCode["ONE_CALL_EXISTED"] = 3] = "ONE_CALL_EXISTED";
- RCUNICallErrorCode[RCUNICallErrorCode["OPERATION_UNAVAILABLE"] = 4] = "OPERATION_UNAVAILABLE";
- RCUNICallErrorCode[RCUNICallErrorCode["INVALID_PARAM"] = 5] = "INVALID_PARAM";
- RCUNICallErrorCode[RCUNICallErrorCode["NETWORK_UNSTABLE"] = 6] = "NETWORK_UNSTABLE";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_REQUEST_FAILED"] = 7] = "MEDIA_REQUEST_FAILED";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_SERVER_NOT_READY"] = 8] = "MEDIA_SERVER_NOT_READY";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_SERVER_NOT_INITIALIZED"] = 9] = "MEDIA_SERVER_NOT_INITIALIZED";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_REQUEST_TIMEOUT"] = 10] = "MEDIA_REQUEST_TIMEOUT";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_UNKOWN_ERROR"] = 11] = "MEDIA_UNKOWN_ERROR";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_KICKED_BY_SERVER_ERROR"] = 12] = "MEDIA_KICKED_BY_SERVER_ERROR";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_SERVER_CLOSED_ERROR"] = 13] = "MEDIA_SERVER_CLOSED_ERROR";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_SERVER_PUBLISH_ERROR"] = 14] = "MEDIA_SERVER_PUBLISH_ERROR";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_SERVER_SUBSCRIBE_ERROR"] = 15] = "MEDIA_SERVER_SUBSCRIBE_ERROR";
- RCUNICallErrorCode[RCUNICallErrorCode["MEDIA_JOIN_ROOM_REFUSE_ERROR"] = 16] = "MEDIA_JOIN_ROOM_REFUSE_ERROR";
-})(exports.RCUNICallErrorCode || (exports.RCUNICallErrorCode = {}));
+export const RCCallIWAudioSource = {
+ DEFAULT: 0,
+ MIC: 1,
+ VOICE_UPLINK: 2,
+ VOICE_DOWNLINK: 3,
+ VOICE_CALL: 4,
+ CAMCORDER: 5,
+ VOICE_RECOGNITION: 6,
+ VOICE_COMMUNICATION: 7
+};
-exports.RCCallIWCallDisconnectedReason = void 0;
+export const RCCallIWVideoProfile = {
+ PROFILE_144_256: 0,
+ PROFILE_240_240: 1,
+ PROFILE_240_320: 2,
+ PROFILE_360_480: 3,
+ PROFILE_360_640: 4,
+ PROFILE_480_640: 5,
+ PROFILE_480_720: 6,
+ PROFILE_720_1280: 7,
+ PROFILE_1080_1920: 8,
+ PROFILE_144_256_HIGH: 9,
+ PROFILE_240_240_HIGH: 10,
+ PROFILE_240_320_HIGH: 11,
+ PROFILE_360_480_HIGH: 12,
+ PROFILE_360_640_HIGH: 13,
+ PROFILE_480_640_HIGH: 14,
+ PROFILE_480_720_HIGH: 15,
+ PROFILE_720_1280_HIGH: 16,
+ PROFILE_1080_1920_HIGH: 17
+};
-(function (RCCallIWCallDisconnectedReason) {
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["CANCEL"] = 0] = "CANCEL";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REJECT"] = 1] = "REJECT";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["HANGUP"] = 2] = "HANGUP";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["BUSY_LINE"] = 3] = "BUSY_LINE";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["NO_RESPONSE"] = 4] = "NO_RESPONSE";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["ENGINE_UNSUPPORTED"] = 5] = "ENGINE_UNSUPPORTED";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["NETWORK_ERROR"] = 6] = "NETWORK_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["RESOURCE_GET_ERROR"] = 7] = "RESOURCE_GET_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["RESOURCE_PUBLISH_ERROR"] = 8] = "RESOURCE_PUBLISH_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["RESOURCE_SUBSCRIBE_ERROR"] = 9] = "RESOURCE_SUBSCRIBE_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_CANCEL"] = 10] = "REMOTE_CANCEL";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_REJECT"] = 11] = "REMOTE_REJECT";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_HANGUP"] = 12] = "REMOTE_HANGUP";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_BUSY_LINE"] = 13] = "REMOTE_BUSY_LINE";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_NO_RESPONSE"] = 14] = "REMOTE_NO_RESPONSE";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_ENGINE_UNSUPPORTED"] = 15] = "REMOTE_ENGINE_UNSUPPORTED";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_NETWORK_ERROR"] = 16] = "REMOTE_NETWORK_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_RESOURCE_GET_ERROR"] = 17] = "REMOTE_RESOURCE_GET_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_RESOURCE_PUBLISH_ERROR"] = 18] = "REMOTE_RESOURCE_PUBLISH_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_RESOURCE_SUBSCRIBE_ERROR"] = 19] = "REMOTE_RESOURCE_SUBSCRIBE_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["KICKED_BY_OTHER_CALL"] = 20] = "KICKED_BY_OTHER_CALL";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["IN_OTHER_CALL"] = 21] = "IN_OTHER_CALL";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["KICKED_BY_SERVER"] = 22] = "KICKED_BY_SERVER";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_KICKED_BY_OTHER_CALL"] = 23] = "REMOTE_KICKED_BY_OTHER_CALL";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_IN_OTHER_CALL"] = 24] = "REMOTE_IN_OTHER_CALL";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REMOTE_KICKED_BY_SERVER"] = 25] = "REMOTE_KICKED_BY_SERVER";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["ACCEPT_BY_OTHER_CLIENT"] = 26] = "ACCEPT_BY_OTHER_CLIENT";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["HANGUP_BY_OTHER_CLIENT"] = 27] = "HANGUP_BY_OTHER_CLIENT";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["REJECTED_BY_BLACKLIST"] = 28] = "REJECTED_BY_BLACKLIST";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["SERVICE_NOT_OPENED"] = 29] = "SERVICE_NOT_OPENED";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["DROP_TO_OBSERVER"] = 30] = "DROP_TO_OBSERVER";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["INIT_VIDEO_ERROR"] = 31] = "INIT_VIDEO_ERROR";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["OTHER_DEVICE_HAD_ACCEPTED"] = 32] = "OTHER_DEVICE_HAD_ACCEPTED";
- RCCallIWCallDisconnectedReason[RCCallIWCallDisconnectedReason["SERVICE_DISCONNECTED"] = 33] = "SERVICE_DISCONNECTED";
-})(exports.RCCallIWCallDisconnectedReason || (exports.RCCallIWCallDisconnectedReason = {}));
+export const RCCallIWCameraOrientation = {
+ PORTRAIT: 0,
+ PORTRAIT_UPSIDE_DOWN: 1,
+ LANDSCAPE_RIGHT: 2,
+ LANDSCAPE_LEFT: 3
+};
-exports.RCCallIWAudioCodecType = void 0;
+export const RCCallIWVideoBitrateMode = {
+ CQ: 0,
+ VBR: 1,
+ CBR: 2
+};
-(function (RCCallIWAudioCodecType) {
- RCCallIWAudioCodecType[RCCallIWAudioCodecType["PCMU"] = 0] = "PCMU";
- RCCallIWAudioCodecType[RCCallIWAudioCodecType["OPUS"] = 111] = "OPUS";
-})(exports.RCCallIWAudioCodecType || (exports.RCCallIWAudioCodecType = {}));
+export const RCCallIWNetworkQuality = {
+ UNKNOWN: 0,
+ EXCELLENT: 1,
+ GOOD: 2,
+ POOR: 3,
+ BAD: 4,
+ TERRIBLE: 5
+};
-exports.RCCallIWAudioSource = void 0;
+export const RCCallIWImportanceHW = {
+ NORMAL: 0,
+ LOW: 1
+};
-(function (RCCallIWAudioSource) {
- RCCallIWAudioSource[RCCallIWAudioSource["DEFAULT"] = 0] = "DEFAULT";
- RCCallIWAudioSource[RCCallIWAudioSource["MIC"] = 1] = "MIC";
- RCCallIWAudioSource[RCCallIWAudioSource["VOICE_UPLINK"] = 2] = "VOICE_UPLINK";
- RCCallIWAudioSource[RCCallIWAudioSource["VOICE_DOWNLINK"] = 3] = "VOICE_DOWNLINK";
- RCCallIWAudioSource[RCCallIWAudioSource["VOICE_CALL"] = 4] = "VOICE_CALL";
- RCCallIWAudioSource[RCCallIWAudioSource["CAMCORDER"] = 5] = "CAMCORDER";
- RCCallIWAudioSource[RCCallIWAudioSource["VOICE_RECOGNITION"] = 6] = "VOICE_RECOGNITION";
- RCCallIWAudioSource[RCCallIWAudioSource["VOICE_COMMUNICATION"] = 7] = "VOICE_COMMUNICATION";
-})(exports.RCCallIWAudioSource || (exports.RCCallIWAudioSource = {}));
+export const RCCallIWCallType = {
+ SINGLE: 0,
+ GROUP: 1
+};
-exports.RCCallIWVideoProfile = void 0;
-
-(function (RCCallIWVideoProfile) {
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_144_256"] = 0] = "PROFILE_144_256";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_240_240"] = 1] = "PROFILE_240_240";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_240_320"] = 2] = "PROFILE_240_320";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_360_480"] = 3] = "PROFILE_360_480";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_360_640"] = 4] = "PROFILE_360_640";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_480_640"] = 5] = "PROFILE_480_640";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_480_720"] = 6] = "PROFILE_480_720";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_720_1280"] = 7] = "PROFILE_720_1280";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_1080_1920"] = 8] = "PROFILE_1080_1920";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_144_256_HIGH"] = 9] = "PROFILE_144_256_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_240_240_HIGH"] = 10] = "PROFILE_240_240_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_240_320_HIGH"] = 11] = "PROFILE_240_320_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_360_480_HIGH"] = 12] = "PROFILE_360_480_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_360_640_HIGH"] = 13] = "PROFILE_360_640_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_480_640_HIGH"] = 14] = "PROFILE_480_640_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_480_720_HIGH"] = 15] = "PROFILE_480_720_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_720_1280_HIGH"] = 16] = "PROFILE_720_1280_HIGH";
- RCCallIWVideoProfile[RCCallIWVideoProfile["PROFILE_1080_1920_HIGH"] = 17] = "PROFILE_1080_1920_HIGH";
-})(exports.RCCallIWVideoProfile || (exports.RCCallIWVideoProfile = {}));
-
-exports.RCCallIWCameraOrientation = void 0;
-
-(function (RCCallIWCameraOrientation) {
- RCCallIWCameraOrientation[RCCallIWCameraOrientation["PORTRAIT"] = 0] = "PORTRAIT";
- RCCallIWCameraOrientation[RCCallIWCameraOrientation["PORTRAIT_UPSIDE_DOWN"] = 1] = "PORTRAIT_UPSIDE_DOWN";
- RCCallIWCameraOrientation[RCCallIWCameraOrientation["LANDSCAPE_RIGHT"] = 2] = "LANDSCAPE_RIGHT";
- RCCallIWCameraOrientation[RCCallIWCameraOrientation["LANDSCAPE_LEFT"] = 3] = "LANDSCAPE_LEFT";
-})(exports.RCCallIWCameraOrientation || (exports.RCCallIWCameraOrientation = {}));
-
-exports.RCCallIWVideoBitrateMode = void 0;
-
-(function (RCCallIWVideoBitrateMode) {
- RCCallIWVideoBitrateMode[RCCallIWVideoBitrateMode["CQ"] = 0] = "CQ";
- RCCallIWVideoBitrateMode[RCCallIWVideoBitrateMode["VBR"] = 1] = "VBR";
- RCCallIWVideoBitrateMode[RCCallIWVideoBitrateMode["CBR"] = 2] = "CBR";
-})(exports.RCCallIWVideoBitrateMode || (exports.RCCallIWVideoBitrateMode = {}));
-
-exports.RCCallIWNetworkQuality = void 0;
-
-(function (RCCallIWNetworkQuality) {
- RCCallIWNetworkQuality[RCCallIWNetworkQuality["UNKNOWN"] = 0] = "UNKNOWN";
- RCCallIWNetworkQuality[RCCallIWNetworkQuality["EXCELLENT"] = 1] = "EXCELLENT";
- RCCallIWNetworkQuality[RCCallIWNetworkQuality["GOOD"] = 2] = "GOOD";
- RCCallIWNetworkQuality[RCCallIWNetworkQuality["POOR"] = 3] = "POOR";
- RCCallIWNetworkQuality[RCCallIWNetworkQuality["BAD"] = 4] = "BAD";
- RCCallIWNetworkQuality[RCCallIWNetworkQuality["TERRIBLE"] = 5] = "TERRIBLE";
-})(exports.RCCallIWNetworkQuality || (exports.RCCallIWNetworkQuality = {}));
-
-exports.RCCallIWImportanceHW = void 0;
-
-(function (RCCallIWImportanceHW) {
- RCCallIWImportanceHW[RCCallIWImportanceHW["NORMAL"] = 0] = "NORMAL";
- RCCallIWImportanceHW[RCCallIWImportanceHW["LOW"] = 1] = "LOW";
-})(exports.RCCallIWImportanceHW || (exports.RCCallIWImportanceHW = {}));
-
-exports.RCCallIWCallType = void 0;
-
-(function (RCCallIWCallType) {
- RCCallIWCallType[RCCallIWCallType["SINGLE"] = 0] = "SINGLE";
- RCCallIWCallType[RCCallIWCallType["GROUP"] = 1] = "GROUP";
-})(exports.RCCallIWCallType || (exports.RCCallIWCallType = {}));
-
-exports.RCCallIWUserType = void 0;
-
-(function (RCCallIWUserType) {
- RCCallIWUserType[RCCallIWUserType["NORMAL"] = 0] = "NORMAL";
- RCCallIWUserType[RCCallIWUserType["OBSERVER"] = 1] = "OBSERVER";
-})(exports.RCCallIWUserType || (exports.RCCallIWUserType = {}));
+export const RCCallIWUserType = {
+ NORMAL: 0,
+ OBSERVER: 1
+};
const call = uni.requireNativePlugin('RongCloud-Call-RCUniCall');
const Platform = uni.getSystemInfoSync().platform;
-function init() {
+
+export function init() {
logger.log(`init Platform->${Platform}`);
call.init({});
}
-function unInit() {
+
+export function unInit() {
logger.log(`unInit Platform->${Platform}`);
call.unInit();
}
-function onCallReceived(listener) {
+
+export function onCallReceived(listener) {
logger.log(`Engine:OnCallReceived 监听通话呼入 Platform->${Platform}`);
call.addEventListener("Engine:OnCallReceived", listener);
}
-function removeCallReceivedListener() {
+
+export function removeCallReceivedListener() {
logger.log(`removeCallReceivedListener`);
call.removeAllEventListeners('Engine:OnCallReceived');
}
-function onCallConnected(listener) {
+
+export function onCallConnected(listener) {
logger.log(`Engine:OnCallConnected 已建立通话通话接通 Platform->${Platform}`);
call.addEventListener("Engine:OnCallConnected", listener);
}
-function removeCallConnectedListener() {
+
+export function removeCallConnectedListener() {
logger.log(`removeCallConnectedListener`);
call.removeAllEventListeners('Engine:OnCallConnected');
}
-function onCallDisconnected(listener) {
+
+export function onCallDisconnected(listener) {
logger.log(`Engine:OnCallDisconnected 监听通话结束 Platform->${Platform}`);
call.addEventListener("Engine:OnCallDisconnected", listener);
}
-function removeCallDisconnectedListener() {
+
+export function removeCallDisconnectedListener() {
logger.log(`removeCallDisconnectedListener`);
call.removeAllEventListeners('Engine:OnCallDisconnected');
}
-function onRemoteUserInvited(listener) {
+
+export function onRemoteUserInvited(listener) {
logger.log(`Engine:OnRemoteUserInvited 通话中的某一个参与者,邀请好友加入通话 Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserInvited", listener);
}
-function removeRemoteUserInvited() {
+
+export function removeRemoteUserInvited() {
logger.log(`removeRemoteUserInvited`);
call.removeAllEventListeners('Engine:OnRemoteUserInvited');
}
-function onRemoteUserJoined(listener) {
+
+export function onRemoteUserJoined(listener) {
logger.log(`Engine:OnRemoteUserJoined 对端用户加入通话 Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserJoined", listener);
}
-function removeRemoteUserJoinedListener() {
+
+export function removeRemoteUserJoinedListener() {
logger.log(`removeRemoteUserJoinedListener`);
call.removeAllEventListeners('Engine:OnRemoteUserJoined');
}
-function onRemoteUserLeft(listener) {
+
+export function onRemoteUserLeft(listener) {
logger.log(`Engine:OnRemoteUserLeft 对端用户挂断(群聊触发) Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserLeft", listener);
}
-function removeRemoteUserLeftListener() {
+
+export function removeRemoteUserLeftListener() {
logger.log(`removeRemoteUserLeftListener`);
call.removeAllEventListeners('Engine:OnRemoteUserLeft');
}
-function onCallOutgoing(listener) {
+
+export function onCallOutgoing(listener) {
logger.log(`Engine:OnCallOutgoing 电话已拨出,通知当前 call 的详细信息 Platform->${Platform}`);
call.addEventListener("Engine:OnCallOutgoing", listener);
}
-function removeCallOutgoingListener() {
+
+export function removeCallOutgoingListener() {
logger.log(`removeCallOutgoingListener`);
call.removeAllEventListeners('Engine:OnCallOutgoing');
}
-function onRemoteUserRinging(listener) {
+
+export function onRemoteUserRinging(listener) {
logger.log(`Engine:OnRemoteUserRinging 被叫端收到请求,发出振铃响应时监听 Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserRinging", listener);
}
-function removeRemoteUserRingingListener() {
+
+export function removeRemoteUserRingingListener() {
logger.log(`removeRemoteUserRingingListener`);
call.removeAllEventListeners('Engine:OnRemoteUserRinging');
}
-function onError(listener) {
+
+export function onError(listener) {
logger.log(`Engine:OnError 通话出现错误 Platform->${Platform}`);
call.addEventListener("Engine:OnError", listener);
}
-function removeErrorListener() {
+
+export function removeErrorListener() {
logger.log(`removeErrorListener`);
call.removeAllEventListeners('Engine:OnError');
}
-function onRemoteUserMediaTypeChanged(listener) {
+
+export function onRemoteUserMediaTypeChanged(listener) {
logger.log(`Engine:OnRemoteUserMediaTypeChanged 对端用户切换了媒体类型 Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserMediaTypeChanged", listener);
}
-function removeRemoteUserMediaTypeChangedListener() {
+
+export function removeRemoteUserMediaTypeChangedListener() {
logger.log(`removeRemoteUserMediaTypeChangedListener`);
call.removeAllEventListeners('Engine:OnRemoteUserMediaTypeChanged');
}
-function onRemoteUserCameraStateChanged(listener) {
+
+export function onRemoteUserCameraStateChanged(listener) {
logger.log(`Engine:OnRemoteUserCameraStateChanged 对端用户关闭了摄像头 Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserCameraStateChanged", listener);
}
-function removeRemoteUserCameraStateChangedListener() {
+
+export function removeRemoteUserCameraStateChangedListener() {
logger.log(`removeRemoteUserCameraStateChangedListener`);
call.removeAllEventListeners('Engine:OnRemoteUserCameraStateChanged');
}
-function onRemoteUserMicrophoneStateChanged(listener) {
+
+export function onRemoteUserMicrophoneStateChanged(listener) {
logger.log(`Engine:OnRemoteUserMicrophoneStateChanged 对端用户开关麦克风 Platform->${Platform}`);
call.addEventListener("Engine:OnRemoteUserMicrophoneStateChanged", listener);
}
-function removeRemoteUserMicrophoneStateChangedListener() {
+
+export function removeRemoteUserMicrophoneStateChangedListener() {
logger.log(`removeRemoteUserMicrophoneStateChanged`);
call.removeAllEventListeners('Engine:OnRemoteUserMicrophoneStateChanged');
}
-function onNetworkQuality(listener) {
+
+export function onNetworkQuality(listener) {
logger.log(`Engine:OnNetworkQuality Platform->${Platform}`);
call.addEventListener("Engine:OnNetworkQuality", listener);
}
-function removeNetworkQualityListener() {
+
+export function removeNetworkQualityListener() {
call.removeAllEventListeners('Engine:OnNetworkQuality');
}
-function onEnableCamera(listener) {
+
+export function onEnableCamera(listener) {
logger.log(`Engine:OnEnableCamera Platform->${Platform}`);
call.addEventListener("Engine:OnEnableCamera", listener);
}
-function removeEnableCameraListener() {
+
+export function removeEnableCameraListener() {
logger.log(`removeEnableCameraListener`);
call.removeAllEventListeners('Engine:OnEnableCamera');
}
-function onSwitchCamera(listener) {
+
+export function onSwitchCamera(listener) {
logger.log(`Engine:OnSwitchCamera Platform->${Platform}`);
call.addEventListener("Engine:OnSwitchCamera", listener);
}
-function removeSwitchCameraListener() {
+
+export function removeSwitchCameraListener() {
logger.log(`removeSwitchCameraListener`);
call.removeAllEventListeners('Engine:OnSwitchCamera');
}
-function getCurrentCallSession() {
+
+export function getCurrentCallSession() {
logger.log(`getCurrentCallSession Platform->${Platform}`);
return call.getCurrentCallSession();
}
-function hangup() {
+
+export function hangup() {
logger.log(`hangup Platform->${Platform}`);
call.hangup();
}
-function accept() {
+
+export function accept() {
logger.log(`accept Platform->${Platform}`);
call.accept();
}
-function startSingleCall(targetId, type, extra) {
+
+export function startSingleCall(targetId, type, extra) {
logger.log(`startSingleCall targetId->${targetId} type=>${type} extra=>${extra} Platform->${Platform}`);
call.startSingleCall(targetId, type, extra);
}
-function startGroupCall(groupId, userIds, observerUserIds, type, extra) {
+
+export function startGroupCall(groupId, userIds, observerUserIds, type, extra) {
logger.log(`startGroupCall groupId->${groupId} userIds=>${userIds} observerUserIds=>${observerUserIds} type=>${type} extra=>${extra} Platform->${Platform}`);
call.startGroupCall(groupId, userIds, observerUserIds, type, extra);
}
-function inviteUsers(userIds, observerUserIds) {
+
+export function inviteUsers(userIds, observerUserIds) {
logger.log(`inviteUsers 邀请用户->${userIds} Platform->${Platform}`);
call.inviteUsers(userIds, observerUserIds);
}
-function setVideoView(userId, ref, type, isZOrderOnTop = false) {
+
+export function setVideoView(userId, ref, type, isZOrderOnTop = false) {
logger.log(`setVideoView userId->${userId} ref=>${ref} type=>${type} isZOrderOnTop=>${isZOrderOnTop} Platform->${Platform}`);
Platform === 'android' ? call.setVideoView(userId, ref, type, isZOrderOnTop) : call.setVideoView(userId, ref, type);
}
-function enableSpeaker(isOpen) {
+
+export function enableSpeaker(isOpen) {
logger.log(`enableSpeaker isOPen->${isOpen} Platform->${Platform}`);
call.enableSpeaker(isOpen);
}
-function enableMicrophone(isOpen) {
+
+export function enableMicrophone(isOpen) {
logger.log(`enableMicrophone isOPen->${isOpen} Platform->${Platform}`);
call.enableMicrophone(isOpen);
}
-function switchCamera() {
+
+export function switchCamera() {
logger.log(`switchCamera Platform->${Platform}`);
call.switchCamera();
}
-function currentCamera() {
+
+export function currentCamera() {
logger.log(`currentCamera Platform->${Platform}`);
return call.currentCamera();
}
-function enableCamera(isOpen, camera) {
+
+export function enableCamera(isOpen, camera) {
logger.log(`enableCamera isOpen=>${isOpen} camera=>${camera} Platform->${Platform}`);
call.enableCamera(isOpen, camera);
}
-function changeMediaType(type) {
+
+export function changeMediaType(type) {
logger.log(`changeMediaType type=>${type} Platform->${Platform}`);
call.changeMediaType(type);
}
-function setAudioConfig(config) {
+
+export function setAudioConfig(config) {
logger.log(`setAudioConfig config=>${config} Platform->${Platform}`);
call.setAudioConfig(config);
}
-function setVideoConfig(config) {
+
+export function setVideoConfig(config) {
logger.log(`setVideoConfig config=>${config} Platform->${Platform}`);
call.setVideoConfig(config);
}
-function setPushConfig(config, hangupPushConfig) {
+
+export function setPushConfig(config, hangupPushConfig) {
logger.log(`setPushConfig config=>${config} hangupPushConfig=>${hangupPushConfig} Platform->${Platform}`);
call.setPushConfig(config, hangupPushConfig);
-}
-
-exports.accept = accept;
-exports.changeMediaType = changeMediaType;
-exports.currentCamera = currentCamera;
-exports.enableCamera = enableCamera;
-exports.enableMicrophone = enableMicrophone;
-exports.enableSpeaker = enableSpeaker;
-exports.getCurrentCallSession = getCurrentCallSession;
-exports.hangup = hangup;
-exports.init = init;
-exports.inviteUsers = inviteUsers;
-exports.onCallConnected = onCallConnected;
-exports.onCallDisconnected = onCallDisconnected;
-exports.onCallOutgoing = onCallOutgoing;
-exports.onCallReceived = onCallReceived;
-exports.onEnableCamera = onEnableCamera;
-exports.onError = onError;
-exports.onNetworkQuality = onNetworkQuality;
-exports.onRemoteUserCameraStateChanged = onRemoteUserCameraStateChanged;
-exports.onRemoteUserInvited = onRemoteUserInvited;
-exports.onRemoteUserJoined = onRemoteUserJoined;
-exports.onRemoteUserLeft = onRemoteUserLeft;
-exports.onRemoteUserMediaTypeChanged = onRemoteUserMediaTypeChanged;
-exports.onRemoteUserMicrophoneStateChanged = onRemoteUserMicrophoneStateChanged;
-exports.onRemoteUserRinging = onRemoteUserRinging;
-exports.onSwitchCamera = onSwitchCamera;
-exports.removeCallConnectedListener = removeCallConnectedListener;
-exports.removeCallDisconnectedListener = removeCallDisconnectedListener;
-exports.removeCallOutgoingListener = removeCallOutgoingListener;
-exports.removeCallReceivedListener = removeCallReceivedListener;
-exports.removeEnableCameraListener = removeEnableCameraListener;
-exports.removeErrorListener = removeErrorListener;
-exports.removeNetworkQualityListener = removeNetworkQualityListener;
-exports.removeRemoteUserCameraStateChangedListener = removeRemoteUserCameraStateChangedListener;
-exports.removeRemoteUserInvited = removeRemoteUserInvited;
-exports.removeRemoteUserJoinedListener = removeRemoteUserJoinedListener;
-exports.removeRemoteUserLeftListener = removeRemoteUserLeftListener;
-exports.removeRemoteUserMediaTypeChangedListener = removeRemoteUserMediaTypeChangedListener;
-exports.removeRemoteUserMicrophoneStateChangedListener = removeRemoteUserMicrophoneStateChangedListener;
-exports.removeRemoteUserRingingListener = removeRemoteUserRingingListener;
-exports.removeSwitchCameraListener = removeSwitchCameraListener;
-exports.setAudioConfig = setAudioConfig;
-exports.setPushConfig = setPushConfig;
-exports.setVideoConfig = setVideoConfig;
-exports.setVideoView = setVideoView;
-exports.startGroupCall = startGroupCall;
-exports.startSingleCall = startSingleCall;
-exports.switchCamera = switchCamera;
-exports.unInit = unInit;
+}
\ No newline at end of file
diff --git a/utils/code.js b/utils/code.js
new file mode 100644
index 0000000..a928772
--- /dev/null
+++ b/utils/code.js
@@ -0,0 +1,424 @@
+//通话异常错误处理
+export const errorDeal = function(code){
+ let tit ='';
+ switch(code){
+ case 0:
+ tit = '成功';
+ break;
+ case 1:
+ tit = '开通的音视频服务没有及时生效或音视频服务已关闭,请等待3-5小时后重新安装应用或开启音视频服务再进行测试';
+ break;
+ case 2:
+ tit = '网络不可用';
+ break;
+ case 3:
+ tit = '已经处于通话中了';
+ break;
+ case 4:
+ tit = '无效操作';
+ break;
+ case 5:
+ tit = '参数错误';
+ break;
+ case 6:
+ tit = '网络不稳定';
+ break;
+ case 7:
+ tit = '媒体服务请求失败';
+ break;
+ case 8:
+ tit = '媒体服务初始化失败';
+ break;
+ case 9:
+ tit = '媒体服务未初始化';
+ break;
+ case 10:
+ tit = '媒体服务请求超时';
+ break;
+ case 11:
+ tit = '未知的媒体服务错误';
+ break;
+ case 12:
+ tit = '已被禁止通话';
+ break;
+ case 13:
+ tit = '音视频服务已关闭';
+ break;
+ case 14:
+ tit = '音视频发布资源失败';
+ break;
+ case 15:
+ tit = '音视频订阅资源失败';
+ break;
+ case 16:
+ tit = '其他端已在通话中错误';
+ break;
+ default:
+ tit='';
+
+ }
+}
+//挂断原因错误处理
+export const reasonDeal = function(code){
+ let tit ='';
+ switch(code){
+ case 0:
+ tit = '己方取消已发出的通话请求';
+ break;
+ case 1:
+ tit = '己方拒绝收到的通话请求';
+ break;
+ case 2:
+ tit = '己方挂断';
+ break;
+ case 3:
+ tit = '己方忙碌';
+ break;
+ case 4:
+ tit = '己方未接听';
+ break;
+ case 5:
+ tit = '己方不支持当前引擎';
+ break;
+ case 6:
+ tit = '己方网络出错';
+ break;
+ case 7:
+ tit = '己方获取媒体资源失败';
+ break;
+ case 8:
+ tit = '己方发布资源失败';
+ break;
+ case 9:
+ tit = '己方订阅资源失败';
+ break;
+ case 10:
+ tit = '对方取消已发出的通话请求';
+ break;
+ case 11:
+ tit = '对方拒绝收到的通话请求';
+ break;
+ case 12:
+ tit = '通话过程对方挂断';
+ break;
+ case 13:
+ tit = '对方忙碌';
+ break;
+ case 14:
+ tit = '对方未接听';
+ break;
+ case 15:
+ tit = '对方不支持当前引擎';
+ break;
+ case 16:
+ tit = '对方网络错误';
+ break;
+ case 17:
+ tit = '对方获取媒体资源失败';
+ break;
+ case 18:
+ tit = '对方发布资源失败';
+ break;
+ case 19:
+ tit = '对方订阅资源失败';
+ break;
+ case 20:
+ tit = '己方其他端已加入新通话';
+ break;
+ case 21:
+ tit = '己方其他端已在通话中';
+ break;
+ case 22:
+ tit = '己方已被禁止通话';
+ break;
+ case 23:
+ tit = '对方其他端已加入新通话';
+ break;
+ case 24:
+ tit = '对方其他端已在通话中';
+ break;
+ case 25:
+ tit = '对方已被禁止通话';
+ break;
+ case 26:
+ tit = '己方其他端已接听';
+ break;
+ case 27:
+ tit = '己方其他端已挂断';
+ break;
+ case 28:
+ tit = '己方被对方加入黑名单';
+ break;
+ case 29:
+ tit = '音视频服务已关闭';
+ break;
+ case 30:
+ tit = '己方被降级为观察者';
+ break;
+ case 31:
+ tit = '己方摄像头初始化错误,可能是没有打开使用摄像头权限';
+ break;
+ case 32:
+ tit = '其他端已经接听';
+ break;
+ case 33:
+ tit = 'im ipc服务已断开';
+ break;
+ default:
+ tit='';
+ }
+ return tit;
+}
+//im连接错误处理
+export const imCode = function (code){
+ let tit = '';
+ switch(code){
+ case -1000:
+ tit = ' 开发者接口调用时传入的参数错误';
+ break;
+ case -4:
+ tit = '应用没有调用 connect() 方法,即调用业务';
+ break;
+ case -3:
+ tit = '参数异常, 请确认参数是否填写正确且有效';
+ break;
+ case -2:
+ tit = 'IPC 进程意外终止. 当 libRongIMLib.so 或 libsqlite.so 找不到或出现崩溃时也会触发此错误. 如果是系统进行了资源回收后调用接口会触发此问题,SDK 会做好自动重连';
+ break;
+ case -1:
+ tit = '未知错误';
+ break;
+ case 0:
+ tit = '连接成功';
+ break;
+ case 1:
+ tit = '当前设备网络不可用';
+ break;
+ case 2:
+ tit = '当前设备切换到飞行模式';
+ break;
+ case 3:
+ tit = '当前设备切换到 2G(GPRS、EDGE)低速网络';
+ break;
+ case 4:
+ tit = '当前设备切换到 3G 或 4G 高速网络';
+ break;
+ case 5:
+ tit = '当前设备切换到 WIFI 网络';
+ break;
+ case 6:
+ tit = '当前用户在其他设备上登录,此设备被踢下线';
+ break;
+ case 7:
+ tit = '当前用户在 Web 端登录';
+ break;
+ case 8:
+ tit = '服务器异常';
+ break;
+ case 9:
+ tit = '连接验证异常';
+ break;
+ case 11:
+ tit = '连接失败或未连接';
+ break;
+ case 12:
+ tit = '当前用户已注销';
+ break;
+ case 405:
+ tit = '已被对方加入黑名单,消息发送失败';
+ break;
+ case 407:
+ tit = '未在对方的白名单中,消息发送失败';
+ break;
+ case 5004:
+ tit = '超时';
+ break;
+ case 20604:
+ tit = '发送消息频率过高,1 秒钟最多只允许发送 5 条消息,详细请联系商务,电话:13161856839';
+ break;
+ case 20605:
+ tit = '信令被封禁,详细请联系商务,电话:13161856839';
+ break;
+ case 20607:
+ tit = '已被对方加入黑名单,消息发送失败';
+ break;
+ case 22406:
+ tit = '当前用户不在群组中';
+ break;
+ case 22408:
+ tit = '当前用户在群组中已被禁言';
+ break;
+ case 23406:
+ tit = '当前用户不在聊天室中';
+ break;
+ case 23408:
+ tit = '当前用户在聊天室中已被禁言';
+ break;
+ case 23409:
+ tit = '当前用户已被踢出并禁止加入聊天室。被禁止的时间取决于服务端调用踢出接口时传入的时间';
+ break;
+ case 23410:
+ tit = '聊天室不存在';
+ break;
+ case 23411:
+ tit = '聊天室成员超限';
+ break;
+ case 23412:
+ tit = '聊天室接口参数不正确';
+ break;
+ case 23414:
+ tit = '聊天室云存储业务未开通';
+ break;
+ case 23424:
+ tit = '没有权限修改聊天室中已存在的属性值';
+ break;
+ case 23425:
+ tit = '聊天室中属性设置频率超限,单个聊天室每秒上限 100 次';
+ break;
+ case 23426:
+ tit = '聊天室属性存储功能没有开通';
+ break;
+ case 23427:
+ tit = '聊天室属性值不存在';
+ break;
+ case 25101:
+ tit = '撤回参数不正确';
+ break;
+ case 25103:
+ tit = '清除历史消息时,传递的时间戳大于当前系统时间';
+ break;
+ case 26001:
+ tit = 'Push 参数不正确';
+ break;
+ case 26002:
+ tit = '向服务端同步时出现问题,有可能是操作过于频繁所致。请稍后再试';
+ break;
+ case 26101:
+ tit = '没有在融云开发者后台开启小视频服务';
+ break;
+ case 30001:
+ tit = '连接已被释放';
+ break;
+ case 30002:
+ tit = '当前连接不可用';
+ break;
+ case 30003:
+ tit = '客户端发送消息请求,融云服务端响应超时';
+ break;
+ case 30004:
+ tit = '导航 HTTP 发送失败';
+ break;
+ case 30005:
+ tit = '请求连接导航地址失败';
+ break;
+ case 30006:
+ tit = '请求连接导航地址后,接收数据失败';
+ break;
+ case 30007:
+ tit = '导航 HTTP 请求失败';
+ break;
+ case 30008:
+ tit = '导航 HTTP 返回数据格式错误';
+ break;
+ case 30009:
+ tit = '导航数据解析后,其中不存在有效 IP 地址';
+ break;
+ case 30010:
+ tit = '创建 Socket 连接失败,连接相关的错误码,SDK 会做好自动重连,开发者无须处理';
+ break;
+ case 30011:
+ tit = 'Socket 断开';
+ break;
+ case 30012:
+ tit = 'PING 失败';
+ break;
+ case 30013:
+ tit = 'PING 超时';
+ break;
+ case 30014:
+ tit = '信令发送失败';
+ break;
+ case 30015:
+ tit = '连接过于频繁';
+ break;
+ case 30016:
+ tit = '消息大小超限,消息体最大 128 KB';
+ break;
+ case 31000:
+ tit = '连接 ACK 超时';
+ break;
+ case 31002:
+ tit = '初始化时填写的 AppKey 不正确';
+ break;
+ case 31003:
+ tit = '服务器当前不可用';
+ break;
+ case 31004:
+ tit = 'Token 无效';
+ break;
+ case 31005:
+ tit = 'AppKey 与Token 不匹配';
+ break;
+ case 31006:
+ tit = '连接重定向. 连接相关的错误码,SDK 会做好自动重连,开发者无须处理';
+ break;
+ case 31007:
+ tit = 'ApplicationId 与后台注册信息不一致';
+ break;
+ case 31008:
+ tit = 'AppKey 被封禁或已删除';
+ break;
+ case 31009:
+ tit = '用户被封禁';
+ break;
+ case 31010:
+ tit = '当前用户在其他移动设备上登录,此设备被踢下线';
+ break;
+ case 31011:
+ tit = '用户被封禁';
+ break;
+ case 31020:
+ tit = 'Token过期。一般是因为在开发者后台设置了token 过期时间,需要请求您的服务器重新获取 Token 并再次用新的 Token 建立连接';
+ break;
+ case 31023:
+ tit = '重连过程中当前用户在其它设备上登录';
+ break;
+ case 32061:
+ tit = '连接被拒绝, SDK 会自动重连,开发者无须处理';
+ break;
+ case 33001:
+ tit = '未调用 init 初始化函数';
+ break;
+ case 33002:
+ tit = '数据库错误';
+ break;
+ case 33003:
+ tit = '调用接口时传入的参数不正确';
+ break;
+ case 33007:
+ tit = '未开通历史消息云存储服务';
+ break;
+ case 34001:
+ tit = '连接已经存在,不需要重复连接';
+ break;
+ case 34002:
+ tit = '小视频时间长度超出限制,默认小视频时长上限为 2 分钟';
+ break;
+ case 34003:
+ tit = 'GIF 消息文件大小超出限制, 默认 GIF 文件大小上限是 2 MB';
+ break;
+ case 34004:
+ tit = '聊天室状态未同步完成,加入聊天室时立即调用获取聊天室属性接口,极限情况下会存在本地数据和服务器未同步完成的情况,开发者可以设置聊天室属性回调,SDK 同步完成时会在属性回调中通知开发者';
+ break;
+ case 34005:
+ tit = '连接环境不正确';
+ break;
+ case 40006:
+ tit = 'RTC 房间操作时传入参数错误';
+ break;
+ default:
+ tit='';
+ }
+ return tit;
+
+}
\ No newline at end of file
diff --git a/utils/util.js b/utils/util.js
new file mode 100644
index 0000000..918a3ce
--- /dev/null
+++ b/utils/util.js
@@ -0,0 +1,3 @@
+export const formate = function(arr){
+ return JSON.parse('['+ arr.join(',') + ']');
+}
\ No newline at end of file