Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
d2a8f2d3
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
未验证
提交
d2a8f2d3
编写于
7月 11, 2022
作者:
DCloud_JSON
提交者:
Gitee
7月 11, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs/uniCloud/uni-cloud-push/api.md.
上级
73bcd2b8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
0 deletion
+9
-0
docs/uniCloud/uni-cloud-push/api.md
docs/uniCloud/uni-cloud-push/api.md
+9
-0
未找到文件。
docs/uniCloud/uni-cloud-push/api.md
浏览文件 @
d2a8f2d3
...
...
@@ -92,6 +92,15 @@ uni.offPushMessage(eventName);
**注意**
:
`user_id`
、
`user_tag`
、
`device_id`
、
`push_clientid`
、
`getui_custom_tag`
、
`getui_big_data_tag`
、
`getui_alias`
不可多选。全为空表示向所有启动过应用的设备推送。
如果用户处于未登录状态,你可以基于
`device_id`
向用户推送消息,但是推送服务器底层只识别
`push_clientid`
,需要通过查数据库获得
`push_clientid`
。而
`device_id`
与
`push_clientid`
的映射关系不由
`uni-push`
提供,而是由
[
uni统计
](
https://uniapp.dcloud.io/uni-stat-v2.html
)
模块内置的功能实现。如果你不使用uni统计,则需要在应用启动时调用
[
getPushClientId
](
https://uniapp.dcloud.io/uniCloud/uni-cloud-push/api.html#getpushclientid
)
获取
`push_clientid`
,获取成功后(应用未在manifest中启用uni-push2.0则会获取失败)调用服务端云对象的某个方法(参数:
`push_clientid`
)执行向
`opendb-device`
表写入或更新(存在时):
[
设备信息
](
https://uniapp.dcloud.io/uniCloud/cloud-obj.html#get-client-info
)
和
`push_clientid`
。
同理基于
`user_id`
向用户推送消息,需要
`user_id`
与
`push_clientid`
的映射关系,可以直接使用
[
uni-id-pages
](
https://ext.dcloud.net.cn/plugin?id=8577
)
插件内置的功能实现。如果你不使用
`uni-di-pages`
需要在
`App.vue`
调用
[
uniCloud.onRefreshToken
](
https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-refresh-token
)
监听token发生变化(即:用户登录和token续期时),调用服务端云对象的某个方法(参数:
`push_clientid`
)操作
`uni-id-device`
表,记录
`device_id`
与
`user_id`
(防客户端伪造,需校验
`token`
)的映射关系;完整字段包含
`user_id`
、
`device_id`
、
`token_expired`
、
`push_clientid`
、
`appid`
。同时再向
`opendb-device`
表写入或更新(存在时):
[
设备信息
](
https://uniapp.dcloud.io/uniCloud/cloud-obj.html#get-client-info
)
和
`push_clientid`
。
**注意:**
客户端上报的信息在理论上存在被篡改可能,基于
`device_id`
向用户推送消息有被窃听的风险(营销类消息不用太关心这个)。
例如:张三使用李四的
`device_id`
+张三的
`push_clientid`
。上报数据;服务器会认为李四的
`push_clientid`
更新了,从而将李四的
`device_id`
与
`push_clientid`
的映射关系,指向张三的
`push_clientid`
;张三从而窃听到,其他人发给李四的消息。
而基于
`user_id`
或者
`user_tag`
推送消息,是基于
`uni-id-device`
表,在新增/更新操作时:会校验当前用户的
`user_id`
,不会被其他用户篡改,即没有被他人窃听消息的风险。
#### 接口形式
可以向设定的(单个、群组、全体)设备,即时或定时推送消息。支持设置:通知栏消息内容、控制响铃,震动,浮动,闪灯;手机桌面应用右上角的角标等。
```
js
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录