• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 选择并查看文档与媒体文件
2
3### 介绍
4
5应用使用[@ohos.file.picker](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md)、[@ohos.file.photoAccessHelper](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper-sys.md)、[@ohos.file.fs](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-fs.md) 等接口,实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。
6
7### 效果预览
8
9| 首页                                 | 查看并编辑文档界面                  | 查看图片界面                           | 查看视频界面                         |
10| ------------------------------------ | ----------------------------------- | -------------------------------------- | ------------------------------------ |
11| ![](./screenshots/device/Index.jpeg) | ![](./screenshots/device/Edit.jpeg) | ![](./screenshots/device/Picture.jpeg) | ![](./screenshots/device/Video.jpeg) |
12
13 使用说明:
14
151. 在首页,应用展示出最近打开过的文档信息,点击信息可以进入对应文档的查看界面。通过点击右上方的三个按钮,可以分别实现新建文档、选择图片或视频并打开预览、选择文档并打开的功能。
162. 在查看文档界面,点击右上方左一按钮,可以实现当前文档另存为的功能;点击右上方中间的按钮,开启文档的编辑功能,textArea变成可编辑状态,用户输入数据后点击右上方第三个按钮,可以将当前文档内容进行保存操作。
173. 在查看图片界面,picker拉起系统相册的图片,用户至多可选择三张图片查看,点击图片可以切换所显示的图片名及大小信息。
184. 在查看视频界面,picker拉起系统相册的视频,用户至多可选择三个视频查看,点击视频播放并且可以显示的视频名及大小信息。
19
20### 工程目录
21
22```
23entry/src/main/ets/
24|---common
25|	|---Common.ts
26|	|---Utils.ts
27|	|---Logger.ts						//日志工具
28|---entryability
29|	|---EntryAbility.ts					//ability类
30|---media
31|	|---MediaFileUri.ts					//媒体文件相关函数
32|---pages
33|	|---EditFile.ets					//查看并编辑文档界面
34|	|---Index.ets						//首页
35|	|---ViewMedia.ets					//查看图片和视频界面
36```
37
38### 具体实现
39
40- 拉起picker选择文件、拉起picker保存文件、拉起picker选择图片或视频的功能封装在Index.ets,源码参考:[Index.ets](entry/src/main/ets/pages/Index.ets)
41
42  * 使用mediaLiabrary.getMediaLibrary来获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如视频、图片、文档等);使用media.getFileAssets来获取文件资源;使用来fetchFileResult.getFirstObject获取文件检索结果中的头一个文件资产,接口参考:[@ohos.file.photoAccessHelper](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper-sys.md)
43  * 使用new picker.DocumentViewPicker来创建文件picker实例,使用documentPicker.select来拉起picker选择文件,使用documentPicker.save来拉起picker保存文件,接口参考:[@ohos.file.picker](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md)
44  * 使用new picker.PhotoViewPicker来创建图库picker实例,使用photoPicker.select来拉起picker选择图片或视频,接口参考:[@ohos.file.picker](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md)
45- 编辑文件并保存的功能封装在EditFile.ets,源码参考:[EditFile.ets](entry/src/main/ets/pages/EditFile.ets)
46
47  * 使用fs.mkdirSyncfs.openSyncfs.writeSyncfs.readSyncfs.closeSync分别用来来创建文件夹、打开文件、写文件、读文件、关闭文件,接口参考:[@ohos.file.fs](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-fs.md)
48- 拉起图片或视频并查看的功能封装在ViewMedia.ets,源码参考:[ViewMedia.ets](entry/src/main/ets/pages/ViewMedia.ets)
49
50  * 使用new picker.PhotoViewPicker来创建图库picker实例,使用photoPicker.save来拉起picker保存图片或视频,接口参考:[@ohos.file.picker](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md)
51  * 使用mediaLiabrary.getMediaLibrary来获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如视频、图片、文档等),然后使用media.getFileAssets来获取文件资源再使用fileAsset.displayName来获取图片或视频的名称,接口参考:[@ohos.file.photoAccessHelper](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper-sys.md)
52
53### 相关权限
54
55| 权限名                           | 权限说明                                 | 级别         |
56| -------------------------------- | ---------------------------------------- | ------------ |
57| ohos.permission.MEDIA_LOCATION   | 允许应用访问用户媒体文件中的地理位置信息 | normal       |
58| ohos.permission.READ_MEDIA       | 允许应用读取用户外部存储中的媒体文件信息 | normal       |
59| ohos.permission.WRITE_MEDIA      | 允许应用读写用户外部存储中的媒体文件信息 | normal       |
60| ohos.permission.WRITE_IMAGEVIDEO | 允许修改用户公共目录的图片或视频文件     | system_basic |
61| ohos.permission.READ_IMAGEVIDEO  | 允许读取用户公共目录的图片或视频文件     | system_basic |
62
63### 依赖
64
65不涉及
66
67### 约束与限制
68
691.本示例仅支持标准系统上运行,支持设备:RK3568。
70
712.本示例为Stage模型,支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0 Release)
72
733.本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行。
74
754.本示例涉及部分接口需要配置系统应用签名,可以参考[特殊权限配置方法](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-app-privilege-config-guide.md) ,把配置文件中的“apl”字段信息改为“system_basic”。
76
77### 下载
78
79如需单独下载本工程,执行如下命令:
80
81```
82git init
83git config core.sparsecheckout true
84echo code/SystemFeature/FileManagement/FileShare/Picker > .git/info/sparse-checkout
85git remote add origin https://gitee.com/openharmony/applications_app_samples.git
86git pull origin master
87```
88