Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-unicloud-zh
提交
0ae18530
U
unidocs-unicloud-zh
项目概览
DCloud
/
unidocs-unicloud-zh
通知
121
Star
3
Fork
30
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
2
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-unicloud-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
0ae18530
编写于
5月 13, 2024
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update uni-im.md
上级
f78a6939
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
9 deletion
+32
-9
docs/uni-im.md
docs/uni-im.md
+32
-9
未找到文件。
docs/uni-im.md
浏览文件 @
0ae18530
...
...
@@ -12,14 +12,14 @@ uni-im是云端一体的、全平台的、免费的、开源即时通讯系统
案例:
<img
width=
"600px"
src=
"https://qiniu-web-assets.dcloud.net.cn/ext/uni-im/20230228110007.jpg"
>
</img>
<img
width=
"600px"
src=
"https://qiniu-web-assets.dcloud.net.cn/ext/uni-im/20230228110007.jpg"
>
如图:在插件市场任意插件详情页面,点击咨询作者按钮,即可看到基于uni-im搭建的客服系统。
下载地址:
[
https://ext.dcloud.net.cn/plugin?name=uni-im
](
https://ext.dcloud.net.cn/plugin?name=uni-im
)
## 特点优势
-
性价比高;前后端代码均免费开源,相比
竞
品使用uni-im仅需花费极少的托管在uniCloud(serverless服务器)产生的费用
[
详情查看
](
#cost
)
-
性价比高;前后端代码均免费开源,相比
同类产
品使用uni-im仅需花费极少的托管在uniCloud(serverless服务器)产生的费用
[
详情查看
](
#cost
)
-
全端可用
-
App端支持nvue,更好的长列表性能。list组件性能优势
[
详情参考
](
https://uniapp.dcloud.net.cn/component/list.html
)
-
中心化响应式数据管理,切换会话无需重新加载数据,更流畅的体验
...
...
@@ -62,7 +62,7 @@ uni-im本身并不收费,实际使用中需要依赖uniCloud云服务,会产
# 快速部署体验
## 前提条件
1.
开通uniCloud并创建服务空间
[
控制面板
](
https://unicloud.dcloud.net.cn/
)
传统的IM产品服务端代码托管在服务商名下的服务器内,你只拥有代码和产生的数据的使用权,并非所有权;而uni-im的前后端代码都是开源的,
是将代码托管在你名下的unic
loud(
[
serverless
](
https://uniapp.dcloud.net.cn/uniCloud/#%E4%BB%80%E4%B9%88%E6%98%AFserverless
)
服务器)内。
传统的IM产品服务端代码托管在服务商名下的服务器内,你只拥有代码和产生的数据的使用权,并非所有权;而uni-im的前后端代码都是开源的,
并且托管在您名下的uniC
loud(
[
serverless
](
https://uniapp.dcloud.net.cn/uniCloud/#%E4%BB%80%E4%B9%88%E6%98%AFserverless
)
服务器)内。
2.
开通
`uni-push2.0`
(注意:
**无论是APP、小程序、web端都需要开通,否则消息将无法实时更新**
)
[
点此前往开通
](
https://uniapp.dcloud.net.cn/unipush-v2.html#%E7%AC%AC%E4%B8%80%E6%AD%A5-%E5%BC%80%E9%80%9A
)
## 体验步骤
...
...
@@ -161,11 +161,12 @@ export default defineConfig({
uni-im的服务端代码托管在uniCloud下,账户体系是[uni-id 4.0+](https://uniapp.dcloud.net.cn/uniCloud/uni-id/summary.html)的;
uni-app生态下绝大部分项目的架构与uni-im相同,所以不需要考虑账号打通问题,用户登录项目后,不需要额外登录uni-im。
而有些传统项目,服务端的开发语言是php、java、go、.net、python、c#等,是自己设计的账号体系;用户登录所获得的token,与uni-im所需的token不是同一个账号体系;需要在传统服务器端,通过[uni-id的外部系统联登](./uni-id/cloud-object.md#external)同步你项目的账号数据到uni-im用户体系并获得uni-id的token,客户端再调用uniImUtils的login方法登录uni-im;示例代码如下:
而有些传统项目,服务端的开发语言是php、java、go、.net、python、c#等,是自己设计的账号体系;
用户登录所获得的token,与uni-im所需的token不是同一个账号体系;
需要在传统服务器端,通过
[
uni-id的外部系统联登
](
./uni-id/cloud-object.md#external
)
同步你项目的账号数据到uni-im用户体系并获得uni-id的token,按如下示例代码完成登录。
```js
import uniImUtils from '@/uni_modules/uni-im/common/utils.js';
import {mutations as uniIdMutations} from '@/uni_modules/uni-id-pages/common/store.js';
uni.request({
url: 'https://www.example.com/login', //仅为示例,并非真实接口地址。
data: {
...
...
@@ -176,9 +177,31 @@ export default defineConfig({
console.log(res.data);
// 得到你自己项目的token和uni-id的token
let {token,uniIdToken} = res.data
// 存储你自己项目的token到storage(仅供参考,根据你自己的登录逻辑而定)
uni.setStorageSync('token',token)
// 【请注意】这里的`uniIdToken` 是一个`对象`:包含:`token`和`tokenExpired`
await uniImUtils.login(uniIdToken)
// 存储uni-id的token和token过期时间到storage(必须按以下格式存储)
uni.setStorageSync('uni_id_token_expired',uniIdToken.tokenExpired)
uni.setStorageSync('uni_id_token',uniIdToken.token)
// 获取push的ClientId同步到uni-id
uni.getPushClientId({
success: async function(e) {
// console.log(e)
let pushClientId = e.cid
// console.log(pushClientId);
let res = await uniIdCo.setPushCid({
pushClientId
})
// console.log('getPushClientId', res);
},
fail(e) {
console.log(e)
}
})
// 更新本地用户信息
await uniIdMutations.updateUserInfo()
// 通知其他模块登录成功
uni.$emit('uni-id-pages-login-success')
}
});
...
...
@@ -565,7 +588,7 @@ await uniImCo.sendMsg({
|0 |不限制 |
|100|仅限当前用户向:客服、好友、群成员发起会话 |
|200|仅限当前用户向:好友或群成员发起会话 |
|300|限制向
系统管理员或群管理员
发起会话|
|300|限制向
:系统管理员 或 群管理员 或 好友
发起会话|
## 客户端sdk@clientSkd
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录