1# @ohos.file.picker (选择器) 2 3> **说明:** 4> 5> 该模块接口从API version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 6 7选择器(Picker)是一个封装PhotoViewPicker、DocumentViewPicker、AudioViewPicker等API模块,具有选择与保存的能力。应用可以自行选择使用哪种API实现文件选择和文件保存的功能。该类接口,需要应用在界面UIAbility中调用,否则无法拉起photoPicker应用或FilePicker应用。 8 9## 导入模块 10 11```ts 12import { picker } from '@kit.CoreFileKit'; 13``` 14 15## DocumentViewPicker 16 17文件选择器对象,用来支撑选择和保存各种格式文档。在使用前,需要先创建DocumentViewPicker实例。 18 19**系统能力**:SystemCapability.FileManagement.UserFileService 20 21### constructor<sup>12+</sup> 22 23constructor(context: Context) 24 25**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 26 27**系统能力**:SystemCapability.FileManagement.UserFileService 28 29创建DocumentViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md) 30 31**示例:** 32 33```ts 34import { common } from '@kit.AbilityKit'; 35import { picker } from '@kit.CoreFileKit'; 36@Entry 37@Component 38struct Index { 39 @State message: string = 'hello World'; 40 41 build() { 42 Row() { 43 Column() { 44 Text(this.message) 45 .fontSize(50) 46 .fontWeight(FontWeight.Bold) 47 .onClick(()=>{ 48 let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext 49 let documentPicker = new picker.DocumentViewPicker(context); 50 }) 51 } 52 .width('100%') 53 } 54 .height('100%') 55 } 56} 57``` 58 59### constructor<sup>12+</sup> 60 61constructor() 62 63**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 64 65**系统能力**:SystemCapability.FileManagement.UserFileService 66 67创建DocumentViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题 68 69**示例:** 70 71```ts 72let documentPicker = new picker.DocumentViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题 73``` 74 75### select 76 77select(option?: DocumentSelectOptions): Promise<Array<string>> 78 79通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用Promise异步返回形式,传入可选参数DocumentSelectOptions对象,返回选择文件的uri数组。 80 81**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 82 83**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 84 85**系统能力**:SystemCapability.FileManagement.UserFileService 86 87**参数:** 88 89| 参数名 | 类型 | 必填 | 说明 | 90| ------- | ------- | ---- | -------------------------- | 91| option | [DocumentSelectOptions](#documentselectoptions) | 否 | documentPicker选择选项,若无此参数,则默认拉起documentPicker主界面 | 92 93**返回值:** 94 95| 类型 | 说明 | 96| ----------------------------- | :---- | 97| Promise<Array<string>> | Promise对象。返回documentPicker选择后的结果集 | 98 99**示例:** 100 101```ts 102import { BusinessError } from '@kit.BasicServicesKit'; 103import { common } from '@kit.AbilityKit'; 104import { picker } from '@kit.CoreFileKit'; 105async function example07(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 106 try { 107 let documentSelectOptions = new picker.DocumentSelectOptions(); 108 let documentPicker = new picker.DocumentViewPicker(context); 109 documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => { 110 console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult)); 111 }).catch((err: BusinessError) => { 112 console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err)); 113 }); 114 } catch (error) { 115 let err: BusinessError = error as BusinessError; 116 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 117 } 118} 119``` 120 121### select 122 123select(option: DocumentSelectOptions, callback: AsyncCallback<Array<string>>): void 124 125通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用callback异步返回形式,传入参数DocumentSelectOptions对象,返回选择文件的uri数组。 126 127**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 128 129**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 130 131**系统能力**:SystemCapability.FileManagement.UserFileService 132 133**参数:** 134 135| 参数名 | 类型 | 必填 | 说明 | 136| ------- | ------- | ---- | -------------------------- | 137| option | [DocumentSelectOptions](#documentselectoptions) | 是 | documentPicker选择选项 | 138| callback | AsyncCallback<Array<string>> | 是 | callback 返回documentPicker选择后的结果集 | 139 140**示例:** 141 142```ts 143import { BusinessError } from '@kit.BasicServicesKit'; 144import { common } from '@kit.AbilityKit'; 145import { picker } from '@kit.CoreFileKit'; 146async function example08(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 147 try { 148 let documentSelectOptions = new picker.DocumentSelectOptions(); 149 let documentPicker = new picker.DocumentViewPicker(context); 150 documentPicker.select(documentSelectOptions, (err: BusinessError, documentSelectResult: Array<string>) => { 151 if (err) { 152 console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err)); 153 return; 154 } 155 console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult)); 156 }); 157 } catch (error) { 158 let err: BusinessError = error as BusinessError; 159 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 160 } 161} 162``` 163 164### select 165 166select(callback: AsyncCallback<Array<string>>): void 167 168通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用callback异步返回形式,返回选择文件的uri数组。 169 170**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 171 172**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 173 174**系统能力**:SystemCapability.FileManagement.UserFileService 175 176**参数:** 177 178| 参数名 | 类型 | 必填 | 说明 | 179| ------- | ------- | ---- | -------------------------- | 180| callback | AsyncCallback<Array<string>> | 是 | callback 返回documentPicker选择后的结果集 | 181 182**示例:** 183 184```ts 185import { BusinessError } from '@kit.BasicServicesKit'; 186import { common } from '@kit.AbilityKit'; 187import { picker } from '@kit.CoreFileKit'; 188async function example09(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 189 try { 190 let documentPicker = new picker.DocumentViewPicker(context); 191 documentPicker.select((err: BusinessError, documentSelectResult: Array<string>) => { 192 if (err) { 193 console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err)); 194 return; 195 } 196 console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult)); 197 }); 198 } catch (error) { 199 let err: BusinessError = error as BusinessError; 200 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 201 } 202} 203``` 204 205### save 206 207save(option?: DocumentSaveOptions): Promise<Array<string>> 208 209通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用Promise异步返回形式,传入可选参数DocumentSaveOptions对象,返回保存文件的uri数组。 210 211**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 212 213**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 214 215**系统能力**:SystemCapability.FileManagement.UserFileService 216 217**参数:** 218 219| 参数名 | 类型 | 必填 | 说明 | 220| ------- | ------- | ---- | -------------------------- | 221| option | [DocumentSaveOptions](#documentsaveoptions) | 否 | documentPicker保存选项,若无此参数,则拉起documentPicker界面后需用户自行输入保存的文件名 | 222 223**返回值:** 224 225| 类型 | 说明 | 226| ----------------------------- | :---- | 227| Promise<Array<string>> | Promise对象。返回documentPicker保存后的结果集 | 228 229**示例:** 230 231```ts 232import { BusinessError } from '@kit.BasicServicesKit'; 233import { common } from '@kit.AbilityKit'; 234import { picker } from '@kit.CoreFileKit'; 235async function example10(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 236 try { 237 let documentSaveOptions = new picker.DocumentSaveOptions(); 238 documentSaveOptions.newFileNames = ['DocumentViewPicker01.txt']; 239 let documentPicker = new picker.DocumentViewPicker(context); 240 documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => { 241 console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult)); 242 }).catch((err: BusinessError) => { 243 console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); 244 }); 245 } catch (error) { 246 let err: BusinessError = error as BusinessError; 247 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 248 } 249} 250``` 251 252### save 253 254save(option: DocumentSaveOptions, callback: AsyncCallback<Array<string>>): void 255 256通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用callback异步返回形式,传入参数DocumentSaveOptions对象,返回保存文件的uri数组。 257 258**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 259 260**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 261 262**系统能力**:SystemCapability.FileManagement.UserFileService 263 264**参数:** 265 266| 参数名 | 类型 | 必填 | 说明 | 267| ------- | ------- | ---- | -------------------------- | 268| option | [DocumentSaveOptions](#documentsaveoptions) | 是 | documentPicker保存选项 | 269| callback | AsyncCallback<Array<string>> | 是 | callback 返回documentPicker保存后的结果集 | 270 271**示例:** 272 273```ts 274import { BusinessError } from '@kit.BasicServicesKit'; 275import { common } from '@kit.AbilityKit'; 276import { picker } from '@kit.CoreFileKit'; 277async function example11(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 278 try { 279 let documentSaveOptions = new picker.DocumentSaveOptions(); 280 documentSaveOptions.newFileNames = ['DocumentViewPicker02.txt']; 281 let documentPicker = new picker.DocumentViewPicker(context); 282 documentPicker.save(documentSaveOptions, (err: BusinessError, documentSaveResult: Array<string>) => { 283 if (err) { 284 console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); 285 return; 286 } 287 console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult)); 288 }); 289 } catch (error) { 290 let err: BusinessError = error as BusinessError; 291 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 292 } 293} 294``` 295 296### save 297 298save(callback: AsyncCallback<Array<string>>): void 299 300通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用callback异步返回形式,返回保存文件的uri数组。 301 302**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 303 304**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 305 306**系统能力**:SystemCapability.FileManagement.UserFileService 307 308**参数:** 309 310| 参数名 | 类型 | 必填 | 说明 | 311| ------- | ------- | ---- | -------------------------- | 312| callback | AsyncCallback<Array<string>> | 是 | callback 返回documentPicker保存后的结果集 | 313 314**示例:** 315 316```ts 317import { BusinessError } from '@kit.BasicServicesKit'; 318import { common } from '@kit.AbilityKit'; 319import { picker } from '@kit.CoreFileKit'; 320async function example12(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 321 try { 322 let documentPicker = new picker.DocumentViewPicker(context); 323 documentPicker.save((err: BusinessError, documentSaveResult: Array<string>) => { 324 if (err) { 325 console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); 326 return; 327 } 328 console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult)); 329 }); 330 } catch (error) { 331 let err: BusinessError = error as BusinessError; 332 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 333 } 334} 335``` 336 337### getSelectedIndex<sup>13+</sup>; 338 339getSelectedIndex(): number 340 341**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 342 343**系统能力**:SystemCapability.FileManagement.UserFileService 344 345通过getSelectedIndex()方法获取保存成功后的文件后缀类型的下标。 346 > **注意**: 347 > <br>**1**、getSelectedIndex()方法只在调用 [save()](#save)时使用生效,其他场景下不可以使用。 348 > <br>**2**、getSelectedIndex()方法需要配置参数[DocumentSaveOptions.fileSuffixChoices](#documentsaveoptions)使用。 349 > <br>**3**、getSelectedIndex()方法返回的是所选后缀类型的下标(number),所选的后缀类型是开发者所传的参数[DocumentSaveOptions.fileSuffixChoices](#documentsaveoptions)里的某个后缀类型,如果没有传参,并且调用了getSelectedIndex()方法,返回值为-1。 350 351```ts 352import { BusinessError } from '@kit.BasicServicesKit'; 353import { common } from '@kit.AbilityKit'; 354import { picker } from '@kit.CoreFileKit'; 355async function exampleIndex(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 356 try { 357 let documentSaveOptions = new picker.DocumentSaveOptions(); 358 //保存文件的名字 359 documentSaveOptions.newFileNames = ['DocumentViewPicker01']; 360 //保存文件的后缀类型 361 documentSaveOptions.fileSuffixChoices = ['txt', 'mp4', 'pdf']; 362 let documentPicker = new picker.DocumentViewPicker(context); 363 documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => { 364 if (documentSaveOptions.fileSuffixChoices != undefined && documentSaveResult != undefined) { 365 //获取保存文件的后缀类型的下标 366 let index = documentPicker.getSelectedIndex(); 367 //获取保存文件的后缀类型。 368 let selectedsuffix = documentSaveOptions.fileSuffixChoices[index]; 369 console.info ('DocumentViewPicker.save selectedsuffix is ' + selectedsuffix); 370 } 371 console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult)); 372 }).catch((err: BusinessError) => { 373 console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); 374 }); 375 } catch (error) { 376 let err: BusinessError = error as BusinessError; 377 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 378 } 379} 380``` 381## AudioViewPicker 382 383音频选择器对象,用来支撑选择和保存音频类文件等用户场景。在使用前,需要先创建AudioViewPicker实例。 384 385**系统能力**:SystemCapability.FileManagement.UserFileService 386 387### constructor<sup>12+</sup> 388 389constructor(context: Context) 390 391**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 392 393**系统能力**:SystemCapability.FileManagement.UserFileService 394 395创建AudioViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md) 396 397**示例:** 398 399```ts 400import { common } from '@kit.AbilityKit'; 401import { picker } from '@kit.CoreFileKit'; 402@Entry 403@Component 404struct Index { 405 @State message: string = 'hello World'; 406 407 build() { 408 Row() { 409 Column() { 410 Text(this.message) 411 .fontSize(50) 412 .fontWeight(FontWeight.Bold) 413 .onClick(()=>{ 414 let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext 415 let audioPicker = new picker.AudioViewPicker(context); 416 }) 417 } 418 .width('100%') 419 } 420 .height('100%') 421 } 422} 423``` 424### constructor<sup>12+</sup> 425 426constructor() 427 428**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 429 430**系统能力**:SystemCapability.FileManagement.UserFileService 431 432创建AudioViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题 433 434**示例:** 435 436```ts 437let audioPicker = new picker.AudioViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题 438``` 439 440### select 441 442select(option?: AudioSelectOptions): Promise<Array<string>> 443 444通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSelectOptions对象,返回选择音频文件的uri数组。 445 446**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。 447 448**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 449 450**系统能力**:SystemCapability.FileManagement.UserFileService 451 452**参数:** 453 454| 参数名 | 类型 | 必填 | 说明 | 455| ------- | ------- | ---- | -------------------------- | 456| option | [AudioSelectOptions](#audioselectoptions) | 否 | audioPicker音频选择选项,若无此参数,则默认拉起audioPicker主界面 | 457 458**返回值:** 459 460| 类型 | 说明 | 461| ----------------------------- | :---- | 462| Promise<Array<string>> | Promise对象。返回audioPicker选择音频后的结果集 | 463 464**示例:** 465 466```ts 467import { BusinessError } from '@kit.BasicServicesKit'; 468import { common } from '@kit.AbilityKit'; 469import { picker } from '@kit.CoreFileKit'; 470async function example13(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 471 try { 472 let audioSelectOptions = new picker.AudioSelectOptions(); 473 let audioPicker = new picker.AudioViewPicker(context); 474 audioPicker.select(audioSelectOptions).then((audioSelectResult: Array<string>) => { 475 console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult)); 476 }).catch((err: BusinessError) => { 477 console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); 478 }); 479 } catch (error) { 480 let err: BusinessError = error as BusinessError; 481 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 482 } 483} 484``` 485 486### select 487 488select(option: AudioSelectOptions, callback: AsyncCallback<Array<string>>): void 489 490通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSelectOptions对象,返回选择音频文件的uri数组。 491 492**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。 493 494**系统能力**:SystemCapability.FileManagement.UserFileService 495 496**参数:** 497 498| 参数名 | 类型 | 必填 | 说明 | 499| ------- | ------- | ---- | -------------------------- | 500| option | [AudioSelectOptions](#audioselectoptions) | 是 | audioPicker音频选择选项 | 501| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker选择音频后的结果集 | 502 503**示例:** 504 505```ts 506import { BusinessError } from '@kit.BasicServicesKit'; 507import { common } from '@kit.AbilityKit'; 508import { picker } from '@kit.CoreFileKit'; 509async function example14(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 510 try { 511 let audioSelectOptions = new picker.AudioSelectOptions(); 512 let audioPicker = new picker.AudioViewPicker(context); 513 audioPicker.select(audioSelectOptions, (err: BusinessError, audioSelectResult: Array<string>) => { 514 if (err) { 515 console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); 516 return; 517 } 518 console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult)); 519 }); 520 } catch (error) { 521 let err: BusinessError = error as BusinessError; 522 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 523 } 524} 525``` 526 527### select 528 529select(callback: AsyncCallback<Array<string>>): void 530 531通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,返回选择音频文件的uri数组。 532 533**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。 534 535**系统能力**:SystemCapability.FileManagement.UserFileService 536 537**参数:** 538 539| 参数名 | 类型 | 必填 | 说明 | 540| ------- | ------- | ---- | -------------------------- | 541| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker选择音频后的结果集 | 542 543**示例:** 544 545```ts 546import { BusinessError } from '@kit.BasicServicesKit'; 547import { common } from '@kit.AbilityKit'; 548import { picker } from '@kit.CoreFileKit'; 549async function example15(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 550 try { 551 let audioPicker = new picker.AudioViewPicker(context); 552 audioPicker.select((err: BusinessError, audioSelectResult: Array<string>) => { 553 if (err) { 554 console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); 555 return; 556 } 557 console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult)); 558 }); 559 } catch (error) { 560 let err: BusinessError = error as BusinessError; 561 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 562 } 563} 564``` 565 566### save 567 568save(option?: AudioSaveOptions): Promise<Array<string>> 569 570通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSaveOptions对象,返回保存音频文件的uri数组。 571 572**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 573 574**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 575 576**系统能力**:SystemCapability.FileManagement.UserFileService 577 578**参数:** 579 580| 参数名 | 类型 | 必填 | 说明 | 581| ------- | ------- | ---- | -------------------------- | 582| option | [AudioSaveOptions](#audiosaveoptions) | 否 | audioPicker保存音频文件选项,若无此参数,则拉起audioPicker界面后需用户自行输入保存的文件名 | 583 584**返回值:** 585 586| 类型 | 说明 | 587| ----------------------------- | ---- | 588| Promise<Array<string>> | Promise对象。返回audioPicker保存音频文件后的结果集 | 589 590**示例:** 591 592```ts 593import { BusinessError } from '@kit.BasicServicesKit'; 594import { common } from '@kit.AbilityKit'; 595import { picker } from '@kit.CoreFileKit'; 596async function example16(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 597 try { 598 let audioSaveOptions = new picker.AudioSaveOptions(); 599 audioSaveOptions.newFileNames = ['AudioViewPicker01.mp3']; 600 let audioPicker = new picker.AudioViewPicker(context); 601 audioPicker.save(audioSaveOptions).then((audioSaveResult: Array<string>) => { 602 console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult)) 603 }).catch((err: BusinessError) => { 604 console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); 605 }); 606 } catch (error) { 607 let err: BusinessError = error as BusinessError; 608 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 609 } 610} 611``` 612 613### save 614 615save(option: AudioSaveOptions, callback: AsyncCallback<Array<string>>): void 616 617通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSaveOptions对象,返回保存音频文件的uri数组。 618 619**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 620 621**系统能力**:SystemCapability.FileManagement.UserFileService 622 623**参数:** 624 625| 参数名 | 类型 | 必填 | 说明 | 626| ------- | ------- | ---- | -------------------------- | 627| option | [AudioSaveOptions](#audiosaveoptions) | 是 | audioPicker保存音频文件选项 | 628| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker保存音频文件后的结果集 | 629 630**示例:** 631 632```ts 633import { BusinessError } from '@kit.BasicServicesKit'; 634import { common } from '@kit.AbilityKit'; 635import { picker } from '@kit.CoreFileKit'; 636async function example17(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 637 try { 638 let audioSaveOptions = new picker.AudioSaveOptions(); 639 audioSaveOptions.newFileNames = ['AudioViewPicker02.mp3']; 640 let audioPicker = new picker.AudioViewPicker(context); 641 audioPicker.save(audioSaveOptions, (err: BusinessError, audioSaveResult: Array<string>) => { 642 if (err) { 643 console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); 644 return; 645 } 646 console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult)); 647 }); 648 } catch (error) { 649 let err: BusinessError = error as BusinessError; 650 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 651 } 652} 653``` 654 655### save 656 657save(callback: AsyncCallback<Array<string>>): void 658 659通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,返回保存音频文件的uri数组。 660 661**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 662 663**系统能力**:SystemCapability.FileManagement.UserFileService 664 665**参数:** 666 667| 参数名 | 类型 | 必填 | 说明 | 668| ------- | ------- | ---- | -------------------------- | 669| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker保存音频文件后的结果集 | 670 671**示例:** 672 673```ts 674import { BusinessError } from '@kit.BasicServicesKit'; 675import { common } from '@kit.AbilityKit'; 676import { picker } from '@kit.CoreFileKit'; 677async function example18(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 678 try { 679 let audioPicker = new picker.AudioViewPicker(context); 680 audioPicker.save((err: BusinessError, audioSaveResult: Array<string>) => { 681 if (err) { 682 console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); 683 return; 684 } 685 console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult)); 686 }); 687 } catch (error) { 688 let err: BusinessError = error as BusinessError; 689 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 690 } 691} 692``` 693 694## DocumentSelectMode<sup>11+</sup> 695 696枚举,picker选择的文档类型。 697 698**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 699 700**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection 701 702| 名称 | 值 | 说明 | 703| ----- | ---- | ---- | 704| FILE | 0 | 文件类型 | 705| FOLDER | 1 | 文件夹类型 | 706| MIXED | 2 | 文件和文件夹混合类型 | 707 708## DocumentSelectOptions 709 710文档选择选项。 711 712**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 713 714**系统能力:** SystemCapability.FileManagement.UserFileService 715 716| 名称 | 类型 | 必填 | 说明 | 717| :---------------------- |---------------------------------------------| ---- |------------------------------------------| 718| maxSelectNumber<sup>10+</sup> | number | 否 | 选择文件最大个数,上限500,有效值范围1-500(选择目录仅对具有该系统能力的设备开放。且目录选择的最大个数为1)。默认值是1。**系统能力:** SystemCapability.FileManagement.UserFileService | 719| defaultFilePathUri<sup>10+</sup> | string | 否 | 指定选择的文件或者目录路径 | 720| fileSuffixFilters<sup>10+</sup> | Array<string> | 否 | 选择文件的后缀类型,传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为过滤后缀。没有"\|\"则没有描述,该项整体是一个过滤后缀。每项过滤后缀可以存在多个后缀名,则每一个后缀名之间用英文逗号进行分隔,传入数组长度不能超过100。仅对具有该系统能力的设备开放。默认全部过滤,即显示所有文件。**系统能力:** SystemCapability.FileManagement.UserFileService | 721| selectMode<sup>11+</sup> | [DocumentSelectMode](#documentselectmode11) | 否 | 支持选择的资源类型,比如:文件、文件夹和二者混合,仅对具有该系统能力的设备开放,默认值是文件类型。**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection | 722| authMode<sup>12+</sup> | boolean | 否 | 拉起授权picker,默认为false(非授权模式)。当authMode为true时为授权模式,defaultFilePathUri必填,表明待授权uri。仅对具有该系统能力的设备开放,**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection | 723 724## DocumentPickerMode<sup>12+</sup> 725 726枚举,picker选择的文档类型。 727 728**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 729 730**系统能力:** SystemCapability.FileManagement.UserFileService 731 732| 名称 | 值 | 说明 | 733| ----- | ---- | ---- | 734| DEFAULT | 0 | 标准模式 | 735| DOWNLOAD | 1 | 下载模式 | 736 737## DocumentSaveOptions 738 739文档保存选项。 740 741**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 742 743**系统能力:** SystemCapability.FileManagement.UserFileService 744 745| 名称 | 类型 | 必填 | 说明 | 746| ----------------------- | ------------------- | ---- | ---------------------------- | 747| newFileNames | Array<string> | 否 | 拉起documentPicker进行保存的文件名,若无此参数,则默认需要用户自行输入 | 748| defaultFilePathUri<sup>10+</sup> | string | 否 | 指定保存的文件或者目录路径 | 749| fileSuffixChoices<sup>10+</sup> | Array<string> | 否 | 保存文件的后缀类型。传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为要保存的后缀。没有"\|\"则没有描述,该项整体是一个保存的后缀。默认没有后缀类型。 | 750| pickerMode<sup>12+</sup> | [DocumentPickerMode](#documentpickermode12) | 否 | 拉起picker的类型, 默认为DEFAULT。当pickerMode设置为DOWNLOAD时,用户配置的参数newFileNames、defaultFilePathUri和fileSuffixChoices将不会生效 | 751 752## AudioSelectOptions 753 754音频选择选项。 755 756**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 757 758**系统能力:** SystemCapability.FileManagement.UserFileService 759| 名称 | 类型 | 必填 | 说明 | 760| :---------------------- |---------------------------------------------| ---- |------------------------------------------| 761| maxSelectNumber<sup>12+</sup> | number | 否 | 选择文件最大个数,默认值为1,上限500,有效值范围1-500 | 762 763## AudioSaveOptions 764 765音频的保存选项。 766 767**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 768 769**系统能力:** SystemCapability.FileManagement.UserFileService 770 771| 名称 | 类型 | 必填 | 说明 | 772| ----------------------- | ------------------- | ---- | ---------------------------- | 773| newFileNames | Array<string> | 否 | 拉起audioPicker进行保存音频资源的文件名,若无此参数,则默认需要用户自行输入 | 774 775## PhotoViewPicker<sup>(deprecated)</sup> 776 777图库选择器对象,用来支撑选择图片/视频和保存图片/视频等用户场景。选择文件推荐使用[PhotoAccessHelper的PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)。在使用前,需要先创建PhotoViewPicker实例。 778 779> **说明:** 780> 781> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)替代。 782 783**系统能力**:SystemCapability.FileManagement.UserFileService 784 785### constructor<sup>12+</sup> 786 787constructor(context: Context) 788 789**系统能力**:SystemCapability.FileManagement.UserFileService 790 791创建PhotoViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md) 792 793**示例:** 794 795```ts 796import { common } from '@kit.AbilityKit'; 797import { picker } from '@kit.CoreFileKit'; 798@Entry 799@Component 800struct Index { 801 @State message: string = 'hello World'; 802 803 build() { 804 Row() { 805 Column() { 806 Text(this.message) 807 .fontSize(50) 808 .fontWeight(FontWeight.Bold) 809 .onClick(()=>{ 810 let context = getContext(this) as common.Context; // 请确保 getContext(this) 返回结果为 UIAbilityContext 811 let photoPicker = new picker.PhotoViewPicker(context); 812 }) 813 } 814 .width('100%') 815 } 816 .height('100%') 817 } 818} 819``` 820 821### constructor<sup>12+</sup> 822 823constructor() 824 825**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 826 827**系统能力**:SystemCapability.FileManagement.UserFileService 828 829创建PhotoViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题 830 831**示例:** 832 833```ts 834let photoPicker = new picker.PhotoViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题 835``` 836 837### select<sup>(deprecated)</sup> 838 839select(option?: PhotoSelectOptions): Promise<PhotoSelectResult> 840 841通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 842 843> **说明:** 844> 845> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select)替代。 846 847**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 848 849**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 850 851**系统能力**:SystemCapability.FileManagement.UserFileService 852 853**参数:** 854 855| 参数名 | 类型 | 必填 | 说明 | 856| ------- | ------- | ---- | -------------------------- | 857| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 否 | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,选择媒体文件数量的默认最大值为50 | 858 859**返回值:** 860 861| 类型 | 说明 | 862| ----------------------------- | :---- | 863| Promise<[PhotoSelectResult](#photoselectresultdeprecated)> | Promise对象。返回photoPicker选择后的结果集 | 864 865**示例:** 866 867```ts 868import { BusinessError } from '@kit.BasicServicesKit'; 869import { common } from '@kit.AbilityKit'; 870import { picker } from '@kit.CoreFileKit'; 871async function example01(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 872 try { 873 let photoSelectOptions = new picker.PhotoSelectOptions(); 874 photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; 875 photoSelectOptions.maxSelectNumber = 5; 876 let photoPicker = new picker.PhotoViewPicker(context); 877 photoPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => { 878 console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult)); 879 }).catch((err: BusinessError) => { 880 console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); 881 }); 882 } catch (error) { 883 let err: BusinessError = error as BusinessError; 884 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 885 } 886} 887``` 888 889### select<sup>(deprecated)</sup> 890 891select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>): void 892 893通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 894 895> **说明:** 896> 897> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-1)替代。 898 899**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 900 901**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 902 903**系统能力**:SystemCapability.FileManagement.UserFileService 904 905**参数:** 906 907| 参数名 | 类型 | 必填 | 说明 | 908| ------- | ------- | ---- | -------------------------- | 909| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 是 | photoPicker选择选项 | 910| callback | AsyncCallback<[PhotoSelectResult](#photoselectresultdeprecated)> | 是 | callback 返回photoPicker选择后的结果集 | 911 912**示例:** 913 914```ts 915import { BusinessError } from '@kit.BasicServicesKit'; 916import { common } from '@kit.AbilityKit'; 917import { picker } from '@kit.CoreFileKit'; 918async function example02(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 919 try { 920 let photoSelectOptions = new picker.PhotoSelectOptions(); 921 photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; 922 photoSelectOptions.maxSelectNumber = 5; 923 let photoPicker = new picker.PhotoViewPicker(context); 924 photoPicker.select(photoSelectOptions, (err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => { 925 if (err) { 926 console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); 927 return; 928 } 929 console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult)); 930 }); 931 } catch (error) { 932 let err: BusinessError = error as BusinessError; 933 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 934 } 935} 936``` 937 938### select<sup>(deprecated)</sup> 939 940select(callback: AsyncCallback<PhotoSelectResult>): void 941 942通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。 943 944> **说明:** 945> 946> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-2)替代。 947 948**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 949 950**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 951 952**系统能力**:SystemCapability.FileManagement.UserFileService 953 954**参数:** 955 956| 参数名 | 类型 | 必填 | 说明 | 957| ------- | ------- | ---- | -------------------------- | 958| callback | AsyncCallback<[PhotoSelectResult](#photoselectresultdeprecated)> | 是 | callback 返回photoPicker选择后的结果集 | 959 960**示例:** 961 962```ts 963import { BusinessError } from '@kit.BasicServicesKit'; 964import { common } from '@kit.AbilityKit'; 965import { picker } from '@kit.CoreFileKit'; 966async function example03(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 967 try { 968 let photoPicker = new picker.PhotoViewPicker(context); 969 photoPicker.select((err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => { 970 if (err) { 971 console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); 972 return; 973 } 974 console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult)); 975 }); 976 } catch (error) { 977 let err: BusinessError = error as BusinessError; 978 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 979 } 980} 981``` 982 983### save<sup>(deprecated)</sup> 984 985save(option?: PhotoSaveOptions): Promise<Array<string>> 986 987通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSaveOptions对象,返回保存文件的uri数组。 988 989> **说明:** 990> 991> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。 992 993**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 994 995**系统能力**:SystemCapability.FileManagement.UserFileService 996 997**参数:** 998 999| 参数名 | 类型 | 必填 | 说明 | 1000| ------- | ------- | ---- | -------------------------- | 1001| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 否 | photoPicker保存图片或视频文件选项,若无此参数,则拉起photoPicker界面后需用户自行输入保存的文件名 | 1002 1003**返回值:** 1004 1005| 类型 | 说明 | 1006| ----------------------------- | :---- | 1007| Promise<Array<string>> | Promise对象。返回photoPicker保存图片或视频文件后的结果集 | 1008 1009**示例:** 1010 1011```ts 1012import { BusinessError } from '@kit.BasicServicesKit'; 1013import { common } from '@kit.AbilityKit'; 1014import { picker } from '@kit.CoreFileKit'; 1015async function example04(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1016 try { 1017 let photoSaveOptions = new picker.PhotoSaveOptions(); 1018 photoSaveOptions.newFileNames = ['PhotoViewPicker01.jpg', 'PhotoViewPicker01.mp4']; 1019 let photoPicker = new picker.PhotoViewPicker(context); 1020 photoPicker.save(photoSaveOptions).then((photoSaveResult: Array<string>) => { 1021 console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult)); 1022 }).catch((err: BusinessError) => { 1023 console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); 1024 }); 1025 } catch (error) { 1026 let err: BusinessError = error as BusinessError; 1027 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 1028 } 1029} 1030``` 1031 1032### save<sup>(deprecated)</sup> 1033 1034save(option: PhotoSaveOptions, callback: AsyncCallback<Array<string>>): void 1035 1036通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSaveOptions对象,返回保存文件的uri数组。 1037 1038> **说明:** 1039> 1040> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。 1041 1042**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 1043 1044**系统能力**:SystemCapability.FileManagement.UserFileService 1045 1046**参数:** 1047 1048| 参数名 | 类型 | 必填 | 说明 | 1049| ------- | ------- | ---- | -------------------------- | 1050| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 是 | photoPicker保存图片或视频文件选项 | 1051| callback | AsyncCallback<Array<string>> | 是 | callback 返回photoPicker保存图片或视频文件后的结果集 | 1052 1053**示例:** 1054 1055```ts 1056import { BusinessError } from '@kit.BasicServicesKit'; 1057import { common } from '@kit.AbilityKit'; 1058import { picker } from '@kit.CoreFileKit'; 1059async function example05(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1060 try { 1061 let photoSaveOptions = new picker.PhotoSaveOptions(); 1062 photoSaveOptions.newFileNames = ['PhotoViewPicker02.jpg','PhotoViewPicker02.mp4']; 1063 let photoPicker = new picker.PhotoViewPicker(context); 1064 photoPicker.save(photoSaveOptions, (err: BusinessError, photoSaveResult: Array<string>) => { 1065 if (err) { 1066 console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); 1067 return; 1068 } 1069 console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult)); 1070 }); 1071 } catch (error) { 1072 let err: BusinessError = error as BusinessError; 1073 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 1074 } 1075} 1076``` 1077 1078### save<sup>(deprecated)</sup> 1079 1080save(callback: AsyncCallback<Array<string>>): void 1081 1082通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,返回保存文件的uri数组。 1083 1084> **说明:** 1085> 1086> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。 1087 1088**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 1089 1090**系统能力**:SystemCapability.FileManagement.UserFileService 1091 1092**参数:** 1093 1094| 参数名 | 类型 | 必填 | 说明 | 1095| ------- | ------- | ---- | -------------------------- | 1096| callback | AsyncCallback<Array<string>> | 是 | callback 返回photoPicker保存图片或视频文件后的结果集 | 1097 1098**示例:** 1099 1100```ts 1101import { BusinessError } from '@kit.BasicServicesKit'; 1102import { common } from '@kit.AbilityKit'; 1103import { picker } from '@kit.CoreFileKit'; 1104async function example06(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1105 try { 1106 let photoPicker = new picker.PhotoViewPicker(context); 1107 photoPicker.save((err: BusinessError, photoSaveResult: Array<string>) => { 1108 if (err) { 1109 console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); 1110 return; 1111 } 1112 console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult)); 1113 }); 1114 } catch (error) { 1115 let err: BusinessError = error as BusinessError; 1116 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 1117 } 1118} 1119``` 1120 1121## PhotoViewMIMETypes<sup>(deprecated)</sup> 1122 1123枚举,可选择的媒体文件类型。 1124 1125> **说明:** 1126> 1127> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewMIMETypes](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewmimetypes)替代。 1128 1129**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1130 1131**系统能力:** SystemCapability.FileManagement.UserFileService 1132 1133| 名称 | 值 | 说明 | 1134| ----- | ---- | ---- | 1135| IMAGE_TYPE | 'image/*' | 图片类型 | 1136| VIDEO_TYPE | 'video/*' | 视频类型 | 1137| IMAGE_VIDEO_TYPE | '\*/*' | 图片和视频类型 | 1138 1139## PhotoSelectOptions<sup>(deprecated)</sup> 1140 1141图库选择选项。 1142 1143> **说明:** 1144> 1145> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectOptions](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectoptions)替代。 1146 1147**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1148 1149**系统能力:** SystemCapability.FileManagement.UserFileService 1150 1151| 名称 | 类型 | 必填 | 说明 | 1152| ----------------------- | ------------------- | ---- | -------------------------------- | 1153| MIMEType | [PhotoViewMIMETypes](#photoviewmimetypesdeprecated) | 否 | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型 | 1154| maxSelectNumber | number | 否 | 选择媒体文件数量的最大值(默认值为50,最大值为500) | 1155 1156## PhotoSelectResult<sup>(deprecated)</sup> 1157 1158返回图库选择后的结果集。 1159 1160> **说明:** 1161> 1162> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectResult](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectresult)替代。 1163 1164**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1165 1166**系统能力:** SystemCapability.FileManagement.UserFileService 1167 1168| 名称 | 类型 | 必填 | 说明 | 1169| ----------------------- | ------------------- | ----| ------------------------------ | 1170| photoUris | Array<string> | 是 | 返回图库选择后的媒体文件的uri数组,此uri数组只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 | 1171| isOriginalPhoto | boolean | 是 | 返回图库选择后的媒体文件是否为原图。true为原图,false不是原图。 | 1172 1173## PhotoSaveOptions<sup>(deprecated)</sup> 1174 1175图片或视频的保存选项。 1176 1177> **说明:** 1178> 1179> 从 API version 9开始支持,从API version 12开始废弃。无替代接口和替代方法。 1180 1181**系统能力:** SystemCapability.FileManagement.UserFileService 1182 1183| 名称 | 类型 | 必填 | 说明 | 1184| ----------------------- | ------------------- | ---- | ---------------------------- | 1185| newFileNames | Array<string> | 否 | 拉起photoPicker进行保存图片或视频资源的文件名,若无此参数,则默认需要用户自行输入 |