• Home
Name Date Size #Lines LOC

..--

AppScope/22-Oct-2025-3532

entry/22-Oct-2025-640577

hvigor/22-Oct-2025-3836

.gitignoreD22-Oct-2025133 1212

README.mdD22-Oct-20254.4 KiB11688

build-profile.json5D22-Oct-20251.3 KiB5655

hvigorfile.tsD22-Oct-2025843 225

oh-package.json5D22-Oct-2025809 2624

ohosTest.mdD22-Oct-20251.4 KiB107

README.md

1# DLP文件添加展示案例
2
3### 介绍
4
5本示例主要介绍DLP文件添加展示场景,利用picker.DocumentViewPicker打开文件管理选择DLP文件,使用startAbility打开文件预览从而展示DLP文件。
6
7### 效果图预览
8
9| 案例首页            | 打开文件管理         | 添加DLP文件                   | 打开DLP                 |
10|-----------------|----------------|---------------------------|-----------------------|
11| ![img_1.png](entry/src/main/resources/base/media/img_1.png) | 	![img_2.png](entry/src/main/resources/base/media/img_2.png)  | 	![img_3.png](entry/src/main/resources/base/media/img_3.png)	 | DLP文件不允许录屏或截屏,需开发手动验证 |
12
13
14**使用说明**
15(注意:本案例只能真机验证)
161. 开发者需要手动生成DLP文件。
172. 打开DLP文件添加展示案例,点击左上角的加号,打开文件管理选择生成的DLP文件(注意:本案例仅对DLP文件进行展示)。
183. DLP文件生成渲染成列表在应用上,点击列表项从而打开文件预览展示DLP文件(注意:本案例仅对DLP文件进行展示)。
19
20### 实现思路
21
22本例涉及的关键特性和实现方案如下:
23
241. 需要开发者手动生成DLP文件:
25   1. 开发者打开文件管理,点击浏览tab页面,点击文档找到pdf、txt等相关文件。
26   2. 长按相关文件点击分享。
27   3. 打开分享弹窗,点击加密分享。
28   4. 跳转添加用户弹窗,输入手机号需要和本机登录的手机号保持一致,点击确认。
29   5. 点击确认后跳转到分享弹窗。
30   6. 分享弹窗点击另存为,选择存储的文件夹,点击右上角对号保存
31
322. 打开文件管理,选择生成的DLP文件,将选择的文件路径进行存储,源码参考[Index.ets](./entry/src/main/ets/pages/Index.ets)。
33
34```typescript
35selectDlp() {
36  try {
37    let context = getContext(this) as common.UIAbilityContext;
38    // 文档选择选项
39    let documentSelectOptions = new picker.DocumentSelectOptions();
40    // 可以选择三个文件
41    documentSelectOptions.maxSelectNumber = 3;
42    // 文件选择器对象,用来支撑选择和保存各种格式文档
43    let documentPicker = new picker.DocumentViewPicker(context);
44    documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {
45      // 将选择的文件路径保存到本地数组中
46      for (let index = 0; index < documentSelectResult.length; index++) {
47        this.fileArray.push(documentSelectResult[index]);
48      }
49    })
50  } catch (err) {
51    logger.error('Select DLP failed ' + JSON.stringify(err))
52  }
53}
54```
55
563. 构造want参数,开发者可以通过调用startAbility接口,由系统从已安装的应用中寻找文件预览,打开选定的文件。源码参考[Index.ets](./entry/src/main/ets/pages/Index.ets)。
57
58```typescript
59viewDlp(dlpUri: string) {
60  let context = getContext(this) as common.UIAbilityContext;
61  // 构造want参数
62  let want: Want = {
63     'action': 'ohos.want.action.viewData',
64     'uri': dlpUri,
65  }
66  try {
67    // 通过调用startAbility接口,由系统从已安装的应用中寻找文件预览,打开选定的文件
68    context.startAbility(want);
69  } catch (err) {
70    logger.error('View DLP failed ' + JSON.stringify(err))
71  }
72}
73```
74
75### 工程结构&模块类型
76
77   ```
78FilePreviewDLP
79|---pages
80|   |---Index.ets                            // 页面信息
81|---log
82|   |---Logger.ets                           // 日志信息
83   ```
84
85### 参考资料
86
87- [拉起文件处理类应用(startAbility)](https://docs.openharmony.cn/pages/v5.1/zh-cn/application-dev/application-models/file-processing-apps-startup.md)
88- [选择器](https://docs.openharmony.cn/pages/v5.1/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md)
89
90### 相关权限
91
92不涉及。
93
94### 依赖
95
96不涉及。
97
98### 约束与限制
99
1001.本示例仅支持标准系统上运行,支持设备:Phone。
101
1022.本示例为Stage模型,支持API13版本SDK,SDK版本号(API Version 5.0.1 Release)。
103
1043.本示例需要使用DevEco Studio版本号(DevEco Studio 5.0.0 Release)及以上版本才可编译运行。
105
106### 下载
107
108如需单独下载本工程,执行如下命令:
109
110```shell
111git init
112git config core.sparsecheckout true
113echo code/BasicFeature/Security/FilePreviewDLP/ > .git/info/sparse-checkout
114git remote add origin https://gitee.com/openharmony/applications_app_samples.git
115git pull origin master
116```