| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Oct-2025 | - | 35 | 32 | ||
| entry/ | 22-Oct-2025 | - | 640 | 577 | ||
| hvigor/ | 22-Oct-2025 | - | 38 | 36 | ||
| .gitignore | D | 22-Oct-2025 | 133 | 12 | 12 | |
| README.md | D | 22-Oct-2025 | 4.4 KiB | 116 | 88 | |
| build-profile.json5 | D | 22-Oct-2025 | 1.3 KiB | 56 | 55 | |
| hvigorfile.ts | D | 22-Oct-2025 | 843 | 22 | 5 | |
| oh-package.json5 | D | 22-Oct-2025 | 809 | 26 | 24 | |
| ohosTest.md | D | 22-Oct-2025 | 1.4 KiB | 10 | 7 |
README.md
1# DLP文件添加展示案例 2 3### 介绍 4 5本示例主要介绍DLP文件添加展示场景,利用picker.DocumentViewPicker打开文件管理选择DLP文件,使用startAbility打开文件预览从而展示DLP文件。 6 7### 效果图预览 8 9| 案例首页 | 打开文件管理 | 添加DLP文件 | 打开DLP | 10|-----------------|----------------|---------------------------|-----------------------| 11|  |  |  | 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```