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