1# FilePicker 2 3## 简介 4 5FilePicker应用是OpenHarmony中预置的系统应用,为用户提供文件选择及保存功能 6 7### 架构图 8 9 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