• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# FilePicker
2
3## 简介
4
5FilePicker应用是OpenHarmony中预置的系统应用,为用户提供文件选择及保存功能
6
7### 架构图
8
9![](figures/FP_FMS.png)
10
11## 目录
12
13```
14/applications/standard/filepicker
15├── figures                     # 架构图目录
16├── product                     # 产品层模块目录
17│   └── pad                     # pad模式模块目录
18|       └── src
19|           ├── main
20|               ├── ets
21│                   ├── MainAbility              # MainAbility代码目录
22|                       ├── module               # 公共文件目录
23|                       ├── pages                # 业务特性的View层目录
24|                       ├── workers              # worker对于的js文件目录
25│                   └── AbilityStage.ts
26|               ├── resources   # 资源目录
27|               └── config.json # 项目配置信息
28│   └── phone                   # phone模式模块目录
29|       └── src
30|           ├── main
31|               ├── ets
32│                   ├── MainAbility              # MainAbility代码目录
33|                       ├── module               # 公共文件目录
34|                       ├── pages                # 业务特性的View层目录
35|                       ├── workers              # worker对于的js文件目录
36│                   └── AbilityStage.ts
37|               ├── resources   # 资源目录
38|               └── config.json # 项目配置信息
39├── signature                   # 证书文件目录
40├── LICENSE                     # 许可文件
41```
42
43## 签名
441. 针对product下的每一个模块,配置build.gradle中的signingConfig。
452. 将signature目录下的sign_files.rar解压后放在build.gradle目录中配置的相应路径即可完成默认签名配置。
463. 把signature目录下的sig_hap.rar解压到任意目录。
47
48## 编译运行
491. 签名配置完成后通过IDE Build -> Make All Modules即可编译出每个模块对应的hap包。
502. 将编译生成的签名后的hap包 如phone模块的phone-entry-debug-standard-ark-signed.hap放到sig_hap.rar解压的目录。
513. 修改sign-filepicker-phone.bat中的-inputFile、-outputFile并运行sign-filepicker-phone.bat即可生成可安装的hap包。
52
53## 使用方法
54
55通过startAbilityForResult拉起FilePicker并获取FilePicker返回的数据,示例代码如下
56
57```js
58// 拉起FilePicker选择文件
59globalThis.context.startAbilityForResult(
60    {
61        bundleName: "com.ohos.filepicker",
62        abilityName: "com.ohos.filepicker.MainAbility",
63        parameters: {
64            'startMode': 'choose', //choose or save
65        }
66    },
67    { windowMode: 102 }
68)
69
70// 拉起FilePicker保存文件
71globalThis.context.startAbilityForResult(
72    {
73        bundleName: "com.ohos.filepicker",
74        abilityName: "com.ohos.filepicker.MainAbility",
75        parameters: {
76            'startMode': 'save', //choose or save
77            'saveFile': 'test.jpg',
78        }
79    },
80    { windowMode: 102 }
81)
82
83// file picker返回给startAbilityForResult的数据
84var abilityResult = {
85    resultCode: resultCode,
86    want: {
87        parameters: {
88            'startMode': startMode,
89            'result': result
90        }
91    }
92}
93globalThis.context.terminateSelfWithResult(abilityResult)
94```
95
96## 相关仓
97
98系统应用
99
100**applications_filepicker**
101