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### getSelectedIndex<sup>14+</sup>; 392 393getSelectedIndex(): number 394 395获取保存成功后的文件后缀类型的下标。 396 397该方法只在调用 [save()](#save)时使用生效,其他场景下不可以使用。 398 399该方法需要配置参数[DocumentSaveOptions.fileSuffixChoices](#documentsaveoptions)使用。 400 401该方法返回的是所选后缀类型的下标(number),所选的后缀类型是开发者所传的参数[DocumentSaveOptions.fileSuffixChoices](#documentsaveoptions)里的某个后缀类型,如果没有传参,并且调用了getSelectedIndex()方法,返回值为-1。 402 403**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 404 405**系统能力**:SystemCapability.FileManagement.UserFileService.FolderSelection 406 407```ts 408import { BusinessError } from '@kit.BasicServicesKit'; 409import { common } from '@kit.AbilityKit'; 410import { picker } from '@kit.CoreFileKit'; 411async function exampleIndex(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 412 try { 413 let documentSaveOptions = new picker.DocumentSaveOptions(); 414 //保存文件的名字 415 documentSaveOptions.newFileNames = ['DocumentViewPicker01']; 416 //保存文件的后缀类型 417 documentSaveOptions.fileSuffixChoices = ['txt', 'mp4', 'pdf']; 418 let documentPicker = new picker.DocumentViewPicker(context); 419 documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => { 420 if (documentSaveOptions.fileSuffixChoices != undefined && documentSaveResult != undefined) { 421 //获取保存文件的后缀类型的下标 422 let index = documentPicker.getSelectedIndex(); 423 //获取保存文件的后缀类型。 424 let selectedsuffix = documentSaveOptions.fileSuffixChoices[index]; 425 console.info ('DocumentViewPicker.save selectedsuffix is ' + selectedsuffix); 426 } 427 console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult)); 428 }).catch((err: BusinessError) => { 429 console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); 430 }); 431 } catch (error) { 432 let err: BusinessError = error as BusinessError; 433 console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); 434 } 435} 436``` 437## AudioViewPicker 438 439音频选择器对象,用来支撑选择和保存音频类文件等用户场景。在使用前,需要先创建AudioViewPicker实例。 440 441**系统能力**:SystemCapability.FileManagement.UserFileService 442 443### constructor<sup>12+</sup> 444 445constructor(context: Context) 446 447创建AudioViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md) 448 449**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 450 451**系统能力**:SystemCapability.FileManagement.UserFileService 452 453**参数:** 454| 参数名 | 类型 | 必填 | 说明 | 455| ------- | ------- | ---- | ------------------------------------------------------------ | 456| context | Context| 是 | 应用上下文(仅支持UIAbilityContext)。Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 | 457 458**示例:** 459 460```ts 461import { common } from '@kit.AbilityKit'; 462import { picker } from '@kit.CoreFileKit'; 463@Entry 464@Component 465struct Index { 466 @State message: string = 'hello World'; 467 468 build() { 469 Row() { 470 Column() { 471 Text(this.message) 472 .fontSize(50) 473 .fontWeight(FontWeight.Bold) 474 .onClick(()=>{ 475 let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext 476 let audioPicker = new picker.AudioViewPicker(context); 477 }) 478 } 479 .width('100%') 480 } 481 .height('100%') 482 } 483} 484``` 485### constructor<sup>12+</sup> 486 487constructor() 488 489创建AudioViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题 490 491**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 492 493**系统能力**:SystemCapability.FileManagement.UserFileService 494 495**示例:** 496 497```ts 498let audioPicker = new picker.AudioViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题 499``` 500 501### select 502 503select(option?: AudioSelectOptions): Promise<Array<string>> 504 505通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSelectOptions对象,返回选择音频文件的uri数组。 506 507**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。 508 509**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 510 511**系统能力**:SystemCapability.FileManagement.UserFileService 512 513**参数:** 514 515| 参数名 | 类型 | 必填 | 说明 | 516| ------- | ------- | ---- | -------------------------- | 517| option | [AudioSelectOptions](#audioselectoptions) | 否 | audioPicker音频选择选项,若无此参数,则默认拉起audioPicker主界面 | 518 519**返回值:** 520 521| 类型 | 说明 | 522| ----------------------------- | :---- | 523| Promise<Array<string>> | Promise对象。返回audioPicker选择音频后的结果集 | 524 525**示例:** 526 527```ts 528import { BusinessError } from '@kit.BasicServicesKit'; 529import { common } from '@kit.AbilityKit'; 530import { picker } from '@kit.CoreFileKit'; 531async function example13(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 532 try { 533 let audioSelectOptions = new picker.AudioSelectOptions(); 534 let audioPicker = new picker.AudioViewPicker(context); 535 audioPicker.select(audioSelectOptions).then((audioSelectResult: Array<string>) => { 536 console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult)); 537 }).catch((err: BusinessError) => { 538 console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); 539 }); 540 } catch (error) { 541 let err: BusinessError = error as BusinessError; 542 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 543 } 544} 545``` 546 547### select 548 549select(option: AudioSelectOptions, callback: AsyncCallback<Array<string>>): void 550 551通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSelectOptions对象,返回选择音频文件的uri数组。 552 553**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。 554 555**系统能力**:SystemCapability.FileManagement.UserFileService 556 557**参数:** 558 559| 参数名 | 类型 | 必填 | 说明 | 560| ------- | ------- | ---- | -------------------------- | 561| option | [AudioSelectOptions](#audioselectoptions) | 是 | audioPicker音频选择选项 | 562| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker选择音频后的结果集 | 563 564**示例:** 565 566```ts 567import { BusinessError } from '@kit.BasicServicesKit'; 568import { common } from '@kit.AbilityKit'; 569import { picker } from '@kit.CoreFileKit'; 570async function example14(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 571 try { 572 let audioSelectOptions = new picker.AudioSelectOptions(); 573 let audioPicker = new picker.AudioViewPicker(context); 574 audioPicker.select(audioSelectOptions, (err: BusinessError, audioSelectResult: Array<string>) => { 575 if (err) { 576 console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); 577 return; 578 } 579 console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult)); 580 }); 581 } catch (error) { 582 let err: BusinessError = error as BusinessError; 583 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 584 } 585} 586``` 587 588### select 589 590select(callback: AsyncCallback<Array<string>>): void 591 592通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,返回选择音频文件的uri数组。 593 594**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。 595 596**系统能力**:SystemCapability.FileManagement.UserFileService 597 598**参数:** 599 600| 参数名 | 类型 | 必填 | 说明 | 601| ------- | ------- | ---- | -------------------------- | 602| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker选择音频后的结果集 | 603 604**示例:** 605 606```ts 607import { BusinessError } from '@kit.BasicServicesKit'; 608import { common } from '@kit.AbilityKit'; 609import { picker } from '@kit.CoreFileKit'; 610async function example15(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 611 try { 612 let audioPicker = new picker.AudioViewPicker(context); 613 audioPicker.select((err: BusinessError, audioSelectResult: Array<string>) => { 614 if (err) { 615 console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); 616 return; 617 } 618 console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult)); 619 }); 620 } catch (error) { 621 let err: BusinessError = error as BusinessError; 622 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 623 } 624} 625``` 626 627### save 628 629save(option?: AudioSaveOptions): Promise<Array<string>> 630 631通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSaveOptions对象,返回保存音频文件的uri数组。 632 633**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 634 635**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 636 637**系统能力**:SystemCapability.FileManagement.UserFileService 638 639**参数:** 640 641| 参数名 | 类型 | 必填 | 说明 | 642| ------- | ------- | ---- | -------------------------- | 643| option | [AudioSaveOptions](#audiosaveoptions) | 否 | audioPicker保存音频文件选项,若无此参数,则拉起audioPicker界面后需用户自行输入保存的文件名 | 644 645**返回值:** 646 647| 类型 | 说明 | 648| ----------------------------- | ---- | 649| Promise<Array<string>> | Promise对象。返回audioPicker保存音频文件后的结果集 | 650 651**示例:** 652 653```ts 654import { BusinessError } from '@kit.BasicServicesKit'; 655import { common } from '@kit.AbilityKit'; 656import { picker } from '@kit.CoreFileKit'; 657async function example16(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 658 try { 659 let audioSaveOptions = new picker.AudioSaveOptions(); 660 audioSaveOptions.newFileNames = ['AudioViewPicker01.mp3']; 661 let audioPicker = new picker.AudioViewPicker(context); 662 audioPicker.save(audioSaveOptions).then((audioSaveResult: Array<string>) => { 663 console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult)) 664 }).catch((err: BusinessError) => { 665 console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); 666 }); 667 } catch (error) { 668 let err: BusinessError = error as BusinessError; 669 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 670 } 671} 672``` 673 674### save 675 676save(option: AudioSaveOptions, callback: AsyncCallback<Array<string>>): void 677 678通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSaveOptions对象,返回保存音频文件的uri数组。 679 680**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 681 682**系统能力**:SystemCapability.FileManagement.UserFileService 683 684**参数:** 685 686| 参数名 | 类型 | 必填 | 说明 | 687| ------- | ------- | ---- | -------------------------- | 688| option | [AudioSaveOptions](#audiosaveoptions) | 是 | audioPicker保存音频文件选项 | 689| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker保存音频文件后的结果集 | 690 691**示例:** 692 693```ts 694import { BusinessError } from '@kit.BasicServicesKit'; 695import { common } from '@kit.AbilityKit'; 696import { picker } from '@kit.CoreFileKit'; 697async function example17(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 698 try { 699 let audioSaveOptions = new picker.AudioSaveOptions(); 700 audioSaveOptions.newFileNames = ['AudioViewPicker02.mp3']; 701 let audioPicker = new picker.AudioViewPicker(context); 702 audioPicker.save(audioSaveOptions, (err: BusinessError, audioSaveResult: Array<string>) => { 703 if (err) { 704 console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); 705 return; 706 } 707 console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult)); 708 }); 709 } catch (error) { 710 let err: BusinessError = error as BusinessError; 711 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 712 } 713} 714``` 715 716### save 717 718save(callback: AsyncCallback<Array<string>>): void 719 720通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,返回保存音频文件的uri数组。 721 722**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 723 724**系统能力**:SystemCapability.FileManagement.UserFileService 725 726**参数:** 727 728| 参数名 | 类型 | 必填 | 说明 | 729| ------- | ------- | ---- | -------------------------- | 730| callback | AsyncCallback<Array<string>> | 是 | callback 返回audioPicker保存音频文件后的结果集 | 731 732**示例:** 733 734```ts 735import { BusinessError } from '@kit.BasicServicesKit'; 736import { common } from '@kit.AbilityKit'; 737import { picker } from '@kit.CoreFileKit'; 738async function example18(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 739 try { 740 let audioPicker = new picker.AudioViewPicker(context); 741 audioPicker.save((err: BusinessError, audioSaveResult: Array<string>) => { 742 if (err) { 743 console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); 744 return; 745 } 746 console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult)); 747 }); 748 } catch (error) { 749 let err: BusinessError = error as BusinessError; 750 console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); 751 } 752} 753``` 754 755## DocumentSelectMode<sup>11+</sup> 756 757枚举,picker选择的文档类型。 758 759**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 760 761**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection 762 763| 名称 | 值 | 说明 | 764| ----- | ---- | ---- | 765| FILE | 0 | 文件类型 | 766| FOLDER | 1 | 文件夹类型 | 767| MIXED | 2 | 文件和文件夹混合类型 | 768 769## DocumentSelectOptions 770 771文档选择选项。 772 773**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 774 775**系统能力:** SystemCapability.FileManagement.UserFileService 776 777| 名称 | 类型 | 必填 | 说明 | 778| :---------------------- |---------------------------------------------| ---- |------------------------------------------| 779| maxSelectNumber<sup>10+</sup> | number | 否 | 选择文件最大个数,上限500,有效值范围1-500(选择目录仅对具有该系统能力的设备开放。且目录选择的最大个数为1)。默认值是1。**系统能力:** SystemCapability.FileManagement.UserFileService | 780| defaultFilePathUri<sup>10+</sup> | string | 否 | 指定选择的文件或者目录路径 | 781| fileSuffixFilters<sup>10+</sup> | Array<string> | 否 | 选择文件的后缀类型,传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为过滤后缀。没有"\|\"则没有描述,该项整体是一个过滤后缀。每项过滤后缀可以存在多个后缀名,则每一个后缀名之间用英文逗号进行分隔,传入数组长度不能超过100。仅对具有该系统能力的设备开放。默认全部过滤,即显示所有文件。**系统能力:** SystemCapability.FileManagement.UserFileService | 782| selectMode<sup>11+</sup> | [DocumentSelectMode](#documentselectmode11) | 否 | 支持选择的资源类型,比如:文件、文件夹和二者混合,仅对具有该系统能力的设备开放,默认值是文件类型。**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection | 783| authMode<sup>12+</sup> | boolean | 否 | 拉起授权picker,默认为false(非授权模式)。当authMode为true时为授权模式,defaultFilePathUri必填,表明待授权uri。仅对具有该系统能力的设备开放,**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection | 784 785## DocumentPickerMode<sup>12+</sup> 786 787枚举,picker选择的文档类型。 788 789**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 790 791**系统能力:** SystemCapability.FileManagement.UserFileService 792 793| 名称 | 值 | 说明 | 794| ----- | ---- | ---- | 795| DEFAULT | 0 | 标准模式 | 796| DOWNLOAD | 1 | 下载模式 | 797 798## DocumentSaveOptions 799 800文档保存选项。 801 802**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 803 804**系统能力:** SystemCapability.FileManagement.UserFileService 805 806| 名称 | 类型 | 必填 | 说明 | 807| ----------------------- | ------------------- | ---- | ---------------------------- | 808| newFileNames | Array<string> | 否 | 拉起documentPicker进行保存的文件名,若无此参数,则默认需要用户自行输入 | 809| defaultFilePathUri<sup>10+</sup> | string | 否 | 指定保存的文件或者目录路径 | 810| fileSuffixChoices<sup>10+</sup> | Array<string> | 否 | 保存文件的后缀类型。传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为要保存的后缀。没有"\|\"则没有描述,该项整体是一个保存的后缀。默认没有后缀类型。 | 811| pickerMode<sup>12+</sup> | [DocumentPickerMode](#documentpickermode12) | 否 | 拉起picker的类型, 默认为DEFAULT。当pickerMode设置为DOWNLOAD时,用户配置的参数newFileNames、defaultFilePathUri和fileSuffixChoices将不会生效 | 812 813## AudioSelectOptions 814 815音频选择选项。 816 817**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 818 819**系统能力:** SystemCapability.FileManagement.UserFileService 820| 名称 | 类型 | 必填 | 说明 | 821| :---------------------- |---------------------------------------------| ---- |------------------------------------------| 822| maxSelectNumber<sup>12+</sup> | number | 否 | 选择文件最大个数,默认值为1,上限500,有效值范围1-500 | 823 824## AudioSaveOptions 825 826音频的保存选项。 827 828**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 829 830**系统能力:** SystemCapability.FileManagement.UserFileService 831 832| 名称 | 类型 | 必填 | 说明 | 833| ----------------------- | ------------------- | ---- | ---------------------------- | 834| newFileNames | Array<string> | 否 | 拉起audioPicker进行保存音频资源的文件名,若无此参数,则默认需要用户自行输入 | 835 836## PhotoViewPicker<sup>(deprecated)</sup> 837 838图库选择器对象,用来支撑选择图片/视频和保存图片/视频等用户场景。选择文件推荐使用[PhotoAccessHelper的PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)。在使用前,需要先创建PhotoViewPicker实例。 839 840> **说明:** 841> 842> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)替代。 843 844**系统能力**:SystemCapability.FileManagement.UserFileService 845 846### constructor<sup>12+</sup> 847 848constructor(context: Context) 849 850**系统能力**:SystemCapability.FileManagement.UserFileService 851 852创建PhotoViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md) 853 854**示例:** 855 856```ts 857import { common } from '@kit.AbilityKit'; 858import { picker } from '@kit.CoreFileKit'; 859@Entry 860@Component 861struct Index { 862 @State message: string = 'hello World'; 863 864 build() { 865 Row() { 866 Column() { 867 Text(this.message) 868 .fontSize(50) 869 .fontWeight(FontWeight.Bold) 870 .onClick(()=>{ 871 let context = getContext(this) as common.Context; // 请确保 getContext(this) 返回结果为 UIAbilityContext 872 let photoPicker = new picker.PhotoViewPicker(context); 873 }) 874 } 875 .width('100%') 876 } 877 .height('100%') 878 } 879} 880``` 881 882### constructor<sup>12+</sup> 883 884constructor() 885 886**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 887 888**系统能力**:SystemCapability.FileManagement.UserFileService 889 890创建PhotoViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题 891 892**示例:** 893 894```ts 895let photoPicker = new picker.PhotoViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题 896``` 897 898### select 899 900select(option?: PhotoSelectOptions): Promise<PhotoSelectResult> 901 902通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 903 904> **说明:** 905> 906> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select)替代。 907 908**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 909 910**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 911 912**系统能力**:SystemCapability.FileManagement.UserFileService 913 914**参数:** 915 916| 参数名 | 类型 | 必填 | 说明 | 917| ------- | ------- | ---- | -------------------------- | 918| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 否 | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,选择媒体文件数量的默认最大值为50 | 919 920**返回值:** 921 922| 类型 | 说明 | 923| ----------------------------- | :---- | 924| Promise<[PhotoSelectResult](#photoselectresultdeprecated)> | Promise对象。返回photoPicker选择后的结果集 | 925 926**示例:** 927 928```ts 929import { BusinessError } from '@kit.BasicServicesKit'; 930import { common } from '@kit.AbilityKit'; 931import { picker } from '@kit.CoreFileKit'; 932async function example01(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 933 try { 934 let photoSelectOptions = new picker.PhotoSelectOptions(); 935 photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; 936 photoSelectOptions.maxSelectNumber = 5; 937 let photoPicker = new picker.PhotoViewPicker(context); 938 photoPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => { 939 console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult)); 940 }).catch((err: BusinessError) => { 941 console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); 942 }); 943 } catch (error) { 944 let err: BusinessError = error as BusinessError; 945 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 946 } 947} 948``` 949 950### select 951 952select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>): void 953 954通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 955 956> **说明:** 957> 958> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-1)替代。 959 960**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 961 962**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 963 964**系统能力**:SystemCapability.FileManagement.UserFileService 965 966**参数:** 967 968| 参数名 | 类型 | 必填 | 说明 | 969| ------- | ------- | ---- | -------------------------- | 970| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 是 | photoPicker选择选项 | 971| callback | AsyncCallback<[PhotoSelectResult](#photoselectresultdeprecated)> | 是 | callback 返回photoPicker选择后的结果集 | 972 973**示例:** 974 975```ts 976import { BusinessError } from '@kit.BasicServicesKit'; 977import { common } from '@kit.AbilityKit'; 978import { picker } from '@kit.CoreFileKit'; 979async function example02(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 980 try { 981 let photoSelectOptions = new picker.PhotoSelectOptions(); 982 photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; 983 photoSelectOptions.maxSelectNumber = 5; 984 let photoPicker = new picker.PhotoViewPicker(context); 985 photoPicker.select(photoSelectOptions, (err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => { 986 if (err) { 987 console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); 988 return; 989 } 990 console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult)); 991 }); 992 } catch (error) { 993 let err: BusinessError = error as BusinessError; 994 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 995 } 996} 997``` 998 999### select 1000 1001select(callback: AsyncCallback<PhotoSelectResult>): void 1002 1003通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。 1004 1005> **说明:** 1006> 1007> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-2)替代。 1008 1009**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 1010 1011**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1012 1013**系统能力**:SystemCapability.FileManagement.UserFileService 1014 1015**参数:** 1016 1017| 参数名 | 类型 | 必填 | 说明 | 1018| ------- | ------- | ---- | -------------------------- | 1019| callback | AsyncCallback<[PhotoSelectResult](#photoselectresultdeprecated)> | 是 | callback 返回photoPicker选择后的结果集 | 1020 1021**示例:** 1022 1023```ts 1024import { BusinessError } from '@kit.BasicServicesKit'; 1025import { common } from '@kit.AbilityKit'; 1026import { picker } from '@kit.CoreFileKit'; 1027async function example03(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1028 try { 1029 let photoPicker = new picker.PhotoViewPicker(context); 1030 photoPicker.select((err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => { 1031 if (err) { 1032 console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); 1033 return; 1034 } 1035 console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult)); 1036 }); 1037 } catch (error) { 1038 let err: BusinessError = error as BusinessError; 1039 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 1040 } 1041} 1042``` 1043 1044### save 1045 1046save(option?: PhotoSaveOptions): Promise<Array<string>> 1047 1048通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSaveOptions对象,返回保存文件的uri数组。 1049 1050> **说明:** 1051> 1052> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。 1053 1054**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 1055 1056**系统能力**:SystemCapability.FileManagement.UserFileService 1057 1058**参数:** 1059 1060| 参数名 | 类型 | 必填 | 说明 | 1061| ------- | ------- | ---- | -------------------------- | 1062| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 否 | photoPicker保存图片或视频文件选项,若无此参数,则拉起photoPicker界面后需用户自行输入保存的文件名 | 1063 1064**返回值:** 1065 1066| 类型 | 说明 | 1067| ----------------------------- | :---- | 1068| Promise<Array<string>> | Promise对象。返回photoPicker保存图片或视频文件后的结果集 | 1069 1070**示例:** 1071 1072```ts 1073import { BusinessError } from '@kit.BasicServicesKit'; 1074import { common } from '@kit.AbilityKit'; 1075import { picker } from '@kit.CoreFileKit'; 1076async function example04(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1077 try { 1078 let photoSaveOptions = new picker.PhotoSaveOptions(); 1079 photoSaveOptions.newFileNames = ['PhotoViewPicker01.jpg', 'PhotoViewPicker01.mp4']; 1080 let photoPicker = new picker.PhotoViewPicker(context); 1081 photoPicker.save(photoSaveOptions).then((photoSaveResult: Array<string>) => { 1082 console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult)); 1083 }).catch((err: BusinessError) => { 1084 console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); 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 1094 1095save(option: PhotoSaveOptions, callback: AsyncCallback<Array<string>>): void 1096 1097通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSaveOptions对象,返回保存文件的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| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 是 | photoPicker保存图片或视频文件选项 | 1112| callback | AsyncCallback<Array<string>> | 是 | callback 返回photoPicker保存图片或视频文件后的结果集 | 1113 1114**示例:** 1115 1116```ts 1117import { BusinessError } from '@kit.BasicServicesKit'; 1118import { common } from '@kit.AbilityKit'; 1119import { picker } from '@kit.CoreFileKit'; 1120async function example05(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1121 try { 1122 let photoSaveOptions = new picker.PhotoSaveOptions(); 1123 photoSaveOptions.newFileNames = ['PhotoViewPicker02.jpg','PhotoViewPicker02.mp4']; 1124 let photoPicker = new picker.PhotoViewPicker(context); 1125 photoPicker.save(photoSaveOptions, (err: BusinessError, photoSaveResult: Array<string>) => { 1126 if (err) { 1127 console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); 1128 return; 1129 } 1130 console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult)); 1131 }); 1132 } catch (error) { 1133 let err: BusinessError = error as BusinessError; 1134 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 1135 } 1136} 1137``` 1138 1139### save 1140 1141save(callback: AsyncCallback<Array<string>>): void 1142 1143通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,返回保存文件的uri数组。 1144 1145> **说明:** 1146> 1147> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。 1148 1149**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。 1150 1151**系统能力**:SystemCapability.FileManagement.UserFileService 1152 1153**参数:** 1154 1155| 参数名 | 类型 | 必填 | 说明 | 1156| ------- | ------- | ---- | -------------------------- | 1157| callback | AsyncCallback<Array<string>> | 是 | callback 返回photoPicker保存图片或视频文件后的结果集 | 1158 1159**示例:** 1160 1161```ts 1162import { BusinessError } from '@kit.BasicServicesKit'; 1163import { common } from '@kit.AbilityKit'; 1164import { picker } from '@kit.CoreFileKit'; 1165async function example06(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来 1166 try { 1167 let photoPicker = new picker.PhotoViewPicker(context); 1168 photoPicker.save((err: BusinessError, photoSaveResult: Array<string>) => { 1169 if (err) { 1170 console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); 1171 return; 1172 } 1173 console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult)); 1174 }); 1175 } catch (error) { 1176 let err: BusinessError = error as BusinessError; 1177 console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); 1178 } 1179} 1180``` 1181 1182## PhotoViewMIMETypes<sup>(deprecated)</sup> 1183 1184枚举,可选择的媒体文件类型。 1185 1186> **说明:** 1187> 1188> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewMIMETypes](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewmimetypes)替代。 1189 1190**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1191 1192**系统能力:** SystemCapability.FileManagement.UserFileService 1193 1194| 名称 | 值 | 说明 | 1195| ----- | ---- | ---- | 1196| IMAGE_TYPE | 'image/*' | 图片类型 | 1197| VIDEO_TYPE | 'video/*' | 视频类型 | 1198| IMAGE_VIDEO_TYPE | '\*/*' | 图片和视频类型 | 1199 1200## PhotoSelectOptions<sup>(deprecated)</sup> 1201 1202图库选择选项。 1203 1204> **说明:** 1205> 1206> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectOptions](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectoptions)替代。 1207 1208**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1209 1210**系统能力:** SystemCapability.FileManagement.UserFileService 1211 1212| 名称 | 类型 | 必填 | 说明 | 1213| ----------------------- | ------------------- | ---- | -------------------------------- | 1214| MIMEType | [PhotoViewMIMETypes](#photoviewmimetypesdeprecated) | 否 | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型 | 1215| maxSelectNumber | number | 否 | 选择媒体文件数量的最大值(默认值为50,最大值为500) | 1216 1217## PhotoSelectResult<sup>(deprecated)</sup> 1218 1219返回图库选择后的结果集。 1220 1221> **说明:** 1222> 1223> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectResult](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectresult)替代。 1224 1225**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1226 1227**系统能力:** SystemCapability.FileManagement.UserFileService 1228 1229| 名称 | 类型 | 必填 | 说明 | 1230| ----------------------- | ------------------- | ----| ------------------------------ | 1231| 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的使用方式)。 | 1232| isOriginalPhoto | boolean | 是 | 返回图库选择后的媒体文件是否为原图。true为原图,false不是原图。 | 1233 1234## PhotoSaveOptions<sup>(deprecated)</sup> 1235 1236图片或视频的保存选项。 1237 1238> **说明:** 1239> 1240> 从 API version 9开始支持,从API version 12开始废弃。无替代接口和替代方法。 1241 1242**系统能力:** SystemCapability.FileManagement.UserFileService 1243 1244| 名称 | 类型 | 必填 | 说明 | 1245| ----------------------- | ------------------- | ---- | ---------------------------- | 1246| newFileNames | Array<string> | 否 | 拉起photoPicker进行保存图片或视频资源的文件名,若无此参数,则默认需要用户自行输入 |