1# Class (PhotoViewPicker) 2 3> **说明:** 4> 5> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 6 7图库选择器对象用于支持选择图片、视频等用户场景。使用前,需先创建PhotoViewPicker实例。 8 9**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 10 11**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 12 13**示例:** 14 15```ts 16let photoPicker = new photoAccessHelper.PhotoViewPicker(); 17``` 18 19## 导入模块 20 21```ts 22import { photoAccessHelper } from '@kit.MediaLibraryKit'; 23``` 24 25## select 26 27select(option?: PhotoSelectOptions) : Promise<PhotoSelectResult> 28 29通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 30 31**注意**:此接口返回的PhotoSelectResult对象中的photoUris具有永久授权,可通过调用[photoAccessHelper.getAssets接口](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 32 33**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 34 35**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 36 37**参数:** 38 39| 参数名 | 类型 | 必填 | 说明 | 40| ------- | ------- | ---- | -------------------------- | 41| option | [PhotoSelectOptions](arkts-apis-photoAccessHelper-class.md#photoselectoptions) | 否 | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,默认选择媒体文件数量的最大值为50。 | 42 43**返回值:** 44 45| 类型 | 说明 | 46| ----------------------------- | :---- | 47| Promise<[PhotoSelectResult](arkts-apis-photoAccessHelper-class.md#photoselectresult)> | Promise对象。返回photoPicker选择后的结果集 | 48 49**错误码:** 50 51接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 52 53| 错误码ID | 错误信息 | 54| -------- | ---------------------------------------- | 55| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 56| 13900042 | Unknown error. | 57 58**示例:** 59 60```ts 61import { BusinessError } from '@kit.BasicServicesKit'; 62 63async function example01(phAccessHelper: photoAccessHelper.PhotoAccessHelper) { 64 try { 65 let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions(); 66 PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; 67 PhotoSelectOptions.maxSelectNumber = 5; 68 let photoPicker = new photoAccessHelper.PhotoViewPicker(); 69 photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 70 console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 71 }).catch((err: BusinessError) => { 72 console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 73 }); 74 } catch (error) { 75 let err: BusinessError = error as BusinessError; 76 console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 77 } 78} 79``` 80 81## select 82 83select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>) : void 84 85通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 86 87**注意**:此接口返回的PhotoSelectResult对象中的photoUris具有永久授权,可通过调用[photoAccessHelper.getAssets接口](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 88 89**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 90 91**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 92 93**参数:** 94 95| 参数名 | 类型 | 必填 | 说明 | 96| ------- | ------- | ---- | -------------------------- | 97| option | [PhotoSelectOptions](arkts-apis-photoAccessHelper-class.md#photoselectoptions) | 是 | photoPicker选择选项。 | 98| callback | AsyncCallback<[PhotoSelectResult](arkts-apis-photoAccessHelper-class.md#photoselectresult)> | 是 | callback 返回photoPicker选择后的结果集。 | 99 100**错误码:** 101 102接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 103 104| 错误码ID | 错误信息 | 105| -------- | ---------------------------------------- | 106| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 107| 13900042 | Unknown error. | 108 109**示例:** 110 111```ts 112import { BusinessError } from '@kit.BasicServicesKit'; 113 114async function example02(phAccessHelper: photoAccessHelper.PhotoAccessHelper) { 115 try { 116 let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions(); 117 PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; 118 PhotoSelectOptions.maxSelectNumber = 5; 119 let photoPicker = new photoAccessHelper.PhotoViewPicker(); 120 photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 121 if (err) { 122 console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 123 return; 124 } 125 console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 126 }); 127 } catch (error) { 128 let err: BusinessError = error as BusinessError; 129 console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 130 } 131} 132``` 133 134## select 135 136select(callback: AsyncCallback<PhotoSelectResult>) : void 137 138通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。 139 140**注意**:此接口返回的PhotoSelectResult对象中的photoUris具有永久授权,可通过调用[photoAccessHelper.getAssets接口](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 141 142**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 143 144**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 145 146**参数:** 147 148| 参数名 | 类型 | 必填 | 说明 | 149| ------- | ------- | ---- | -------------------------- | 150| callback | AsyncCallback<[PhotoSelectResult](arkts-apis-photoAccessHelper-class.md#photoselectresult)> | 是 | callback 返回photoPicker选择后的结果集。 | 151 152**错误码:** 153 154接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 155 156| 错误码ID | 错误信息 | 157| -------- | ---------------------------------------- | 158| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 159| 13900042 | Unknown error. | 160 161**示例:** 162 163```ts 164import { BusinessError } from '@kit.BasicServicesKit'; 165 166async function example03(phAccessHelper: photoAccessHelper.PhotoAccessHelper) { 167 try { 168 let photoPicker = new photoAccessHelper.PhotoViewPicker(); 169 photoPicker.select((err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 170 if (err) { 171 console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 172 return; 173 } 174 console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 175 }); 176 } catch (error) { 177 let err: BusinessError = error as BusinessError; 178 console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 179 } 180} 181``` 182