1# @ohos.data.preferences (用户首选项) 2 3用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。 4 5数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。 6 7用户首选项的持久化文件存储在[preferencesDir](../../application-models/application-context-stage.md#获取应用文件路径)路径下,创建preferences对象前,需要保证preferencesDir路径可读写。持久化文件存储路径中的[加密等级](../apis-ability-kit/js-apis-app-ability-contextConstant.md#areamode)会影响文件的可读写状态,路径访问限制详见[应用文件目录与应用文件路径](../../file-management/app-sandbox-directory.md#应用文件目录与应用文件路径)。 8 9> **说明:** 10> 11> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 12> 13> 首选项无法保证进程并发安全,会有文件损坏和数据丢失的风险,不支持在多进程场景下使用。 14 15## 导入模块 16 17```ts 18import { preferences } from '@kit.ArkData'; 19``` 20 21## 常量 22 23**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 24 25**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 26 27| 名称 | 参数类型 | 可读 | 可写 | 说明 | 28| ---------------- | -------- | ---- | ---- | --------------------------------------- | 29| MAX_KEY_LENGTH | number | 是 | 否 | Key的最大长度限制为1024个字节。 | 30| MAX_VALUE_LENGTH | number | 是 | 否 | Value的最大长度限制为16MB。 | 31 32 33## preferences.getPreferences 34 35getPreferences(context: Context, name: string, callback: AsyncCallback<Preferences>): void 36 37获取Preferences实例,使用callback异步回调。 38 39**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 40 41**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 42 43**参数:** 44 45| 参数名 | 类型 | 必填 | 说明 | 46| -------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ | 47| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 48| name | string | 是 | Preferences实例的名称。 | 49| callback | AsyncCallback<[Preferences](#preferences)> | 是 | 回调函数。当获取Preferences实例成功,err为undefined,返回Preferences实例;否则err为错误对象。 | 50 51**错误码:** 52 53以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 54 55| 错误码ID | 错误信息 | 56| -------- | ------------------------------ | 57| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 58| 15500000 | Inner error. | 59 60**示例:** 61 62FA模型示例: 63 64<!--code_no_check_fa--> 65```ts 66import { featureAbility } from '@kit.AbilityKit'; 67import { BusinessError } from '@kit.BasicServicesKit'; 68 69let context = featureAbility.getContext(); 70let dataPreferences: preferences.Preferences | null = null; 71 72preferences.getPreferences(context, 'myStore', (err: BusinessError, val: preferences.Preferences) => { 73 if (err) { 74 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 75 return; 76 } 77 dataPreferences = val; 78 console.info("Succeeded in getting preferences."); 79}) 80``` 81 82Stage模型示例: 83 84```ts 85import { UIAbility } from '@kit.AbilityKit'; 86import { BusinessError } from '@kit.BasicServicesKit'; 87import { window } from '@kit.ArkUI'; 88 89let dataPreferences: preferences.Preferences | null = null; 90 91class EntryAbility extends UIAbility { 92 onWindowStageCreate(windowStage: window.WindowStage) { 93 preferences.getPreferences(this.context, 'myStore', (err: BusinessError, val: preferences.Preferences) => { 94 if (err) { 95 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 96 return; 97 } 98 dataPreferences = val; 99 console.info("Succeeded in getting preferences."); 100 }) 101 } 102} 103``` 104 105## preferences.getPreferences 106 107getPreferences(context: Context, name: string): Promise<Preferences> 108 109获取Preferences实例,使用Promise异步回调。 110 111**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 112 113**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 114 115**参数:** 116 117| 参数名 | 类型 | 必填 | 说明 | 118| ------- | ------------------------------------- | ---- | ----------------------- | 119| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 120| name | string | 是 | Preferences实例的名称。 | 121 122**返回值:** 123 124| 类型 | 说明 | 125| ------------------------------------------ | ---------------------------------- | 126| Promise<[Preferences](#preferences)> | Promise对象,返回Preferences实例。 | 127 128**错误码:** 129 130以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 131 132| 错误码ID | 错误信息 | 133| -------- | ------------------------------ | 134| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 135| 15500000 | Inner error. | 136 137**示例:** 138 139FA模型示例: 140 141<!--code_no_check_fa--> 142```ts 143// 获取context 144import { featureAbility } from '@kit.AbilityKit'; 145import { BusinessError } from '@kit.BasicServicesKit'; 146 147let context = featureAbility.getContext(); 148 149let dataPreferences: preferences.Preferences | null = null; 150let promise = preferences.getPreferences(context, 'myStore'); 151promise.then((object: preferences.Preferences) => { 152 dataPreferences = object; 153 console.info("Succeeded in getting preferences."); 154}).catch((err: BusinessError) => { 155 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 156}) 157``` 158 159Stage模型示例: 160 161```ts 162import { UIAbility } from '@kit.AbilityKit'; 163import { BusinessError } from '@kit.BasicServicesKit'; 164import { window } from '@kit.ArkUI'; 165 166let dataPreferences: preferences.Preferences | null = null; 167 168class EntryAbility extends UIAbility { 169 onWindowStageCreate(windowStage: window.WindowStage) { 170 let promise = preferences.getPreferences(this.context, 'myStore'); 171 promise.then((object: preferences.Preferences) => { 172 dataPreferences = object; 173 console.info("Succeeded in getting preferences."); 174 }).catch((err: BusinessError) => { 175 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 176 }) 177 } 178} 179``` 180 181## preferences.getPreferences<sup>10+</sup> 182 183getPreferences(context: Context, options: Options, callback: AsyncCallback<Preferences>): void 184 185获取Preferences实例,使用callback异步回调。 186 187**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 188 189**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 190 191**参数:** 192 193| 参数名 | 类型 | 必填 | 说明 | 194| -------- | --------------------------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 195| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 196| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 197| callback | AsyncCallback<[Preferences](#preferences)> | 是 | 回调函数。当获取Preferences实例成功,err为undefined,返回Preferences实例;否则err为错误对象。 | 198 199**错误码:** 200 201以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 202 203| 错误码ID | 错误信息 | 204| -------- | ------------------------------ | 205| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 206| 801 | Capability not supported. | 207| 15500000 | Inner error. | 208| 15501001 | The operations is supported in stage mode only. | 209| 15501002 | Invalid dataGroupId. | 210 211**示例:** 212 213FA模型示例: 214 215<!--code_no_check_fa--> 216```ts 217// 获取context 218import { featureAbility } from '@kit.AbilityKit'; 219import { BusinessError } from '@kit.BasicServicesKit'; 220 221let context = featureAbility.getContext(); 222let dataPreferences: preferences.Preferences | null = null; 223 224let options: preferences.Options = { name: 'myStore' }; 225preferences.getPreferences(context, options, (err: BusinessError, val: preferences.Preferences) => { 226 if (err) { 227 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 228 return; 229 } 230 dataPreferences = val; 231 console.info("Succeeded in getting preferences."); 232}) 233``` 234 235 236Stage模型示例: 237 238```ts 239import { UIAbility } from '@kit.AbilityKit'; 240import { BusinessError } from '@kit.BasicServicesKit'; 241import { window } from '@kit.ArkUI'; 242 243let dataPreferences: preferences.Preferences | null = null; 244 245class EntryAbility extends UIAbility { 246 onWindowStageCreate(windowStage: window.WindowStage) { 247 let options: preferences.Options = { name: 'myStore' }; 248 preferences.getPreferences(this.context, options, (err: BusinessError, val: preferences.Preferences) => { 249 if (err) { 250 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 251 return; 252 } 253 dataPreferences = val; 254 console.info("Succeeded in getting preferences."); 255 }) 256 } 257} 258``` 259 260## preferences.getPreferences<sup>10+</sup> 261 262getPreferences(context: Context, options: Options): Promise<Preferences> 263 264获取Preferences实例,使用Promise异步回调。 265 266**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 267 268**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 269 270**参数:** 271 272| 参数名 | 类型 | 必填 | 说明 | 273| ------- | ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 274| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 275| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 276 277**返回值:** 278 279| 类型 | 说明 | 280| --------------------------------------- | ---------------------------------- | 281| Promise<[Preferences](#preferences)> | Promise对象,返回Preferences实例。 | 282 283**错误码:** 284 285以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 286 287| 错误码ID | 错误信息 | 288| -------- | ------------------------------ | 289| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 290| 801 | Capability not supported. | 291| 15500000 | Inner error. | 292| 15501001 | The operations is supported in stage mode only. | 293| 15501002 | Invalid dataGroupId. | 294 295**示例:** 296 297FA模型示例: 298 299<!--code_no_check_fa--> 300```ts 301// 获取context 302import { featureAbility } from '@kit.AbilityKit'; 303import { BusinessError } from '@kit.BasicServicesKit'; 304 305let context = featureAbility.getContext(); 306 307let dataPreferences: preferences.Preferences | null = null; 308let options: preferences.Options = { name: 'myStore' }; 309let promise = preferences.getPreferences(context, options); 310promise.then((object: preferences.Preferences) => { 311 dataPreferences = object; 312 console.info("Succeeded in getting preferences."); 313}).catch((err: BusinessError) => { 314 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 315}) 316``` 317 318Stage模型示例: 319 320```ts 321import { UIAbility } from '@kit.AbilityKit'; 322import { BusinessError } from '@kit.BasicServicesKit'; 323import { window } from '@kit.ArkUI'; 324 325let dataPreferences: preferences.Preferences | null = null; 326 327class EntryAbility extends UIAbility { 328 onWindowStageCreate(windowStage: window.WindowStage) { 329 let options: preferences.Options = { name: 'myStore' }; 330 let promise = preferences.getPreferences(this.context, options); 331 promise.then((object: preferences.Preferences) => { 332 dataPreferences = object; 333 console.info("Succeeded in getting preferences."); 334 }).catch((err: BusinessError) => { 335 console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message); 336 }) 337 } 338} 339``` 340 341## preferences.getPreferencesSync<sup>10+</sup> 342 343getPreferencesSync(context: Context, options: Options): Preferences 344 345获取Preferences实例,此为同步接口。 346 347**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 348 349**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 350 351**参数:** 352 353| 参数名 | 类型 | 必填 | 说明 | 354| ------- | --------------------- | ---- | ------------------------------------------------------------ | 355| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 356| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 357 358**返回值:** 359 360| 类型 | 说明 | 361| --------------------------- | --------------------- | 362| [Preferences](#preferences) | 返回Preferences实例。 | 363 364**错误码:** 365 366以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 367 368| 错误码ID | 错误信息 | 369| -------- | ------------------------------ | 370| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 371| 801 | Capability not supported. | 372| 15500000 | Inner error. | 373| 15501001 | The operations is supported in stage mode only. | 374| 15501002 | Invalid dataGroupId. | 375 376**示例:** 377 378FA模型示例: 379 380<!--code_no_check_fa--> 381```ts 382// 获取context 383import { featureAbility } from '@kit.AbilityKit'; 384 385let context = featureAbility.getContext(); 386let dataPreferences: preferences.Preferences | null = null; 387 388let options: preferences.Options = { name: 'myStore' }; 389dataPreferences = preferences.getPreferencesSync(context, options); 390``` 391 392Stage模型示例: 393 394```ts 395import { UIAbility } from '@kit.AbilityKit'; 396import { window } from '@kit.ArkUI'; 397 398let dataPreferences: preferences.Preferences | null = null; 399 400class EntryAbility extends UIAbility { 401 onWindowStageCreate(windowStage: window.WindowStage) { 402 let options: preferences.Options = { name: 'myStore' }; 403 dataPreferences = preferences.getPreferencesSync(this.context, options); 404 } 405} 406``` 407 408## preferences.deletePreferences 409 410deletePreferences(context: Context, name: string, callback: AsyncCallback<void>): void 411 412从缓存中移出指定的Preferences实例,若Preferences实例有对应的持久化文件,则同时删除其持久化文件。使用callback异步回调。 413 414调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 415 416不支持该接口与preference其他接口并发调用。 417 418**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 419 420**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 421 422**参数:** 423 424| 参数名 | 类型 | 必填 | 说明 | 425| -------- | ------------------------------------- | ---- | ---------------------------------------------------- | 426| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 427| name | string | 是 | Preferences实例的名称。 | 428| callback | AsyncCallback<void> | 是 | 回调函数。当移除成功,err为undefined,否则为错误对象。 | 429 430**错误码:** 431 432以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 433 434| 错误码ID | 错误信息 | 435| -------- | ------------------------------ | 436| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 437| 15500000 | Inner error. | 438| 15500010 | Failed to delete the user preferences persistence file. | 439 440**示例:** 441 442FA模型示例: 443 444<!--code_no_check_fa--> 445```ts 446// 获取context 447import { featureAbility } from '@kit.AbilityKit'; 448import { BusinessError } from '@kit.BasicServicesKit'; 449 450let context = featureAbility.getContext(); 451 452preferences.deletePreferences(context, 'myStore', (err: BusinessError) => { 453 if (err) { 454 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 455 return; 456 } 457 console.info("Succeeded in deleting preferences."); 458}) 459``` 460 461Stage模型示例: 462 463```ts 464import { UIAbility } from '@kit.AbilityKit'; 465import { BusinessError } from '@kit.BasicServicesKit'; 466import { window } from '@kit.ArkUI'; 467 468class EntryAbility extends UIAbility { 469 onWindowStageCreate(windowStage: window.WindowStage) { 470 preferences.deletePreferences(this.context, 'myStore', (err: BusinessError) => { 471 if (err) { 472 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 473 return; 474 } 475 console.info("Succeeded in deleting preferences."); 476 }) 477 } 478} 479``` 480 481## preferences.deletePreferences 482 483deletePreferences(context: Context, name: string): Promise<void> 484 485从缓存中移出指定的Preferences实例,若Preferences实例有对应的持久化文件,则同时删除其持久化文件。使用Promise异步回调。 486 487调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 488 489不支持该接口与preference其他接口并发调用。 490 491**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 492 493**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 494 495**参数:** 496 497| 参数名 | 类型 | 必填 | 说明 | 498| ------- | ------------------------------------- | ---- | ----------------------- | 499| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 500| name | string | 是 | Preferences实例的名称。 | 501 502**返回值:** 503 504| 类型 | 说明 | 505| ------------------- | ------------------------- | 506| Promise<void> | 无返回结果的Promise对象。 | 507 508**错误码:** 509 510以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 511 512| 错误码ID | 错误信息 | 513| -------- | ------------------------------ | 514| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 515| 15500000 | Inner error. | 516| 15500010 | Failed to delete the user preferences persistence file. | 517 518**示例:** 519 520FA模型示例: 521 522<!--code_no_check_fa--> 523```ts 524// 获取context 525import { featureAbility } from '@kit.AbilityKit'; 526import { BusinessError } from '@kit.BasicServicesKit'; 527 528let context = featureAbility.getContext(); 529 530let promise = preferences.deletePreferences(context, 'myStore'); 531promise.then(() => { 532 console.info("Succeeded in deleting preferences."); 533}).catch((err: BusinessError) => { 534 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 535}) 536``` 537 538Stage模型示例: 539 540```ts 541import { UIAbility } from '@kit.AbilityKit'; 542import { BusinessError } from '@kit.BasicServicesKit'; 543import { window } from '@kit.ArkUI'; 544 545class EntryAbility extends UIAbility { 546 onWindowStageCreate(windowStage: window.WindowStage) { 547 let promise = preferences.deletePreferences(this.context, 'myStore'); 548 promise.then(() => { 549 console.info("Succeeded in deleting preferences."); 550 }).catch((err: BusinessError) => { 551 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 552 }) 553 } 554} 555``` 556 557## preferences.deletePreferences<sup>10+</sup> 558 559deletePreferences(context: Context, options: Options, callback: AsyncCallback<void>): void 560 561从缓存中移出指定的Preferences实例,若Preferences实例有对应的持久化文件,则同时删除其持久化文件。使用callback异步回调。 562 563调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 564 565不支持该接口与preference其他接口并发调用。 566 567**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 568 569**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 570 571**参数:** 572 573| 参数名 | 类型 | 必填 | 说明 | 574| -------- | ------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 575| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 576| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 577| callback | AsyncCallback<void> | 是 | 回调函数。当移除成功,err为undefined,否则为错误对象。 | 578 579**错误码:** 580 581以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 582 583| 错误码ID | 错误信息 | 584| -------- | ------------------------------ | 585| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 586| 801 | Capability not supported. | 587| 15500000 | Inner error. | 588| 15500010 | Failed to delete the user preferences persistence file. | 589| 15501001 | The operations is supported in stage mode only. | 590| 15501002 | Invalid dataGroupId. | 591 592**示例:** 593 594FA模型示例: 595 596<!--code_no_check_fa--> 597```ts 598// 获取context 599import { featureAbility } from '@kit.AbilityKit'; 600import { BusinessError } from '@kit.BasicServicesKit'; 601 602let context = featureAbility.getContext(); 603 604let options: preferences.Options = { name: 'myStore' }; 605preferences.deletePreferences(context, options, (err: BusinessError) => { 606 if (err) { 607 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 608 return; 609 } 610 console.info("Succeeded in deleting preferences."); 611}) 612``` 613 614Stage模型示例: 615 616```ts 617import { UIAbility } from '@kit.AbilityKit'; 618import { BusinessError } from '@kit.BasicServicesKit'; 619import { window } from '@kit.ArkUI'; 620 621class EntryAbility extends UIAbility { 622 onWindowStageCreate(windowStage: window.WindowStage) { 623 let options: preferences.Options = { name: 'myStore' }; 624 preferences.deletePreferences(this.context, options, (err: BusinessError) => { 625 if (err) { 626 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 627 return; 628 } 629 console.info("Succeeded in deleting preferences."); 630 }) 631 } 632} 633``` 634 635 636## preferences.deletePreferences<sup>10+</sup> 637 638deletePreferences(context: Context, options: Options): Promise<void> 639 640从缓存中移出指定的Preferences实例,若Preferences实例有对应的持久化文件,则同时删除其持久化文件。使用Promise异步回调。 641 642调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 643 644不支持该接口与preference其他接口并发调用。 645 646**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 647 648**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 649 650**参数:** 651 652| 参数名 | 类型 | 必填 | 说明 | 653| ------- | ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 654| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 655| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 656 657**返回值:** 658 659| 类型 | 说明 | 660| ------------------- | ------------------------- | 661| Promise<void> | 无返回结果的Promise对象。 | 662 663**错误码:** 664 665以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 666 667| 错误码ID | 错误信息 | 668| -------- | ------------------------------ | 669| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 670| 801 | Capability not supported. | 671| 15500000 | Inner error. | 672| 15500010 | Failed to delete the user preferences persistence file. | 673| 15501001 | The operations is supported in stage mode only. | 674| 15501002 | Invalid dataGroupId. | 675 676**示例:** 677 678FA模型示例: 679 680<!--code_no_check_fa--> 681```ts 682// 获取context 683import { featureAbility } from '@kit.AbilityKit'; 684import { BusinessError } from '@kit.BasicServicesKit'; 685 686let context = featureAbility.getContext(); 687 688let options: preferences.Options = { name: 'myStore' }; 689let promise = preferences.deletePreferences(context, options); 690promise.then(() => { 691 console.info("Succeeded in deleting preferences."); 692}).catch((err: BusinessError) => { 693 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 694}) 695``` 696 697Stage模型示例: 698 699```ts 700import { UIAbility } from '@kit.AbilityKit'; 701import { BusinessError } from '@kit.BasicServicesKit'; 702import { window } from '@kit.ArkUI'; 703 704class EntryAbility extends UIAbility { 705 onWindowStageCreate(windowStage: window.WindowStage) { 706 let options: preferences.Options = { name: 'myStore' }; 707 let promise = preferences.deletePreferences(this.context, options); 708 promise.then(() => { 709 console.info("Succeeded in deleting preferences."); 710 }).catch((err: BusinessError) => { 711 console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message); 712 }) 713 } 714} 715``` 716 717 718## preferences.removePreferencesFromCache 719 720removePreferencesFromCache(context: Context, name: string, callback: AsyncCallback<void>): void 721 722从缓存中移出指定的Preferences实例,使用callback异步回调。 723 724应用首次调用[getPreferences](#preferencesgetpreferences)接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次[getPreferences](#preferencesgetpreferences)时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。 725 726调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 727 728**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 729 730**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 731 732**参数:** 733 734| 参数名 | 类型 | 必填 | 说明 | 735| -------- | ------------------------------------- | ---- | ---------------------------------------------------- | 736| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 737| name | string | 是 | Preferences实例的名称。 | 738| callback | AsyncCallback<void> | 是 | 回调函数。当移除成功,err为undefined,否则为错误对象。 | 739 740**错误码:** 741 742以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 743 744| 错误码ID | 错误信息 | 745| -------- | ------------------------------ | 746| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 747| 15500000 | Inner error. | 748 749**示例:** 750 751FA模型示例: 752 753<!--code_no_check_fa--> 754```ts 755// 获取context 756import { featureAbility } from '@kit.AbilityKit'; 757import { BusinessError } from '@kit.BasicServicesKit'; 758 759let context = featureAbility.getContext(); 760preferences.removePreferencesFromCache(context, 'myStore', (err: BusinessError) => { 761 if (err) { 762 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 763 return; 764 } 765 console.info("Succeeded in removing preferences."); 766}) 767``` 768 769Stage模型示例: 770 771```ts 772import { UIAbility } from '@kit.AbilityKit'; 773import { BusinessError } from '@kit.BasicServicesKit'; 774import { window } from '@kit.ArkUI'; 775 776class EntryAbility extends UIAbility { 777 onWindowStageCreate(windowStage: window.WindowStage) { 778 preferences.removePreferencesFromCache(this.context, 'myStore', (err: BusinessError) => { 779 if (err) { 780 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 781 return; 782 } 783 console.info("Succeeded in removing preferences."); 784 }) 785 } 786} 787``` 788 789## preferences.removePreferencesFromCache 790 791removePreferencesFromCache(context: Context, name: string): Promise<void> 792 793从缓存中移出指定的Preferences实例,使用Promise异步回调。 794 795应用首次调用[getPreferences](#preferencesgetpreferences)接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次[getPreferences](#preferencesgetpreferences)时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。 796 797调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 798 799**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 800 801**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 802 803**参数:** 804 805| 参数名 | 类型 | 必填 | 说明 | 806| ------- | ------------------------------------- | ---- | ----------------------- | 807| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 808| name | string | 是 | Preferences实例的名称。 | 809 810**返回值:** 811 812| 类型 | 说明 | 813| ------------------- | ------------------------- | 814| Promise<void> | 无返回结果的Promise对象。 | 815 816**错误码:** 817 818以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 819 820| 错误码ID | 错误信息 | 821| -------- | ------------------------------ | 822| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 823| 15500000 | Inner error. | 824 825**示例:** 826 827FA模型示例: 828 829<!--code_no_check_fa--> 830```ts 831// 获取context 832import { featureAbility } from '@kit.AbilityKit'; 833import { BusinessError } from '@kit.BasicServicesKit'; 834 835let context = featureAbility.getContext(); 836let promise = preferences.removePreferencesFromCache(context, 'myStore'); 837promise.then(() => { 838 console.info("Succeeded in removing preferences."); 839}).catch((err: BusinessError) => { 840 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 841}) 842``` 843 844Stage模型示例: 845 846```ts 847import { UIAbility } from '@kit.AbilityKit'; 848import { BusinessError } from '@kit.BasicServicesKit'; 849import { window } from '@kit.ArkUI'; 850 851class EntryAbility extends UIAbility { 852 onWindowStageCreate(windowStage: window.WindowStage) { 853 let promise = preferences.removePreferencesFromCache(this.context, 'myStore'); 854 promise.then(() => { 855 console.info("Succeeded in removing preferences."); 856 }).catch((err: BusinessError) => { 857 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 858 }) 859 } 860} 861``` 862 863## preferences.removePreferencesFromCacheSync<sup>10+</sup> 864 865removePreferencesFromCacheSync(context: Context, name: string): void 866 867从缓存中移出指定的Preferences实例,此为同步接口。 868 869应用首次调用[getPreferences](#preferencesgetpreferences)接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次[getPreferences](#preferencesgetpreferences)时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。 870 871调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 872 873**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 874 875**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 876 877**参数:** 878 879| 参数名 | 类型 | 必填 | 说明 | 880| ------- | ------------------------------------- | ---- | ----------------------- | 881| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 882| name | string | 是 | Preferences实例的名称。 | 883 884**错误码:** 885 886以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 887 888| 错误码ID | 错误信息 | 889| -------- | ------------------------------ | 890| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 891| 15500000 | Inner error. | 892 893**示例:** 894 895FA模型示例: 896 897<!--code_no_check_fa--> 898```ts 899// 获取context 900import { featureAbility } from '@kit.AbilityKit'; 901let context = featureAbility.getContext(); 902preferences.removePreferencesFromCacheSync(context, 'myStore'); 903``` 904 905Stage模型示例: 906 907```ts 908import { UIAbility } from '@kit.AbilityKit'; 909import { window } from '@kit.ArkUI'; 910 911class EntryAbility extends UIAbility { 912 onWindowStageCreate(windowStage: window.WindowStage) { 913 preferences.removePreferencesFromCacheSync(this.context, 'myStore'); 914 } 915} 916``` 917 918## preferences.removePreferencesFromCache<sup>10+</sup> 919 920removePreferencesFromCache(context: Context, options: Options, callback: AsyncCallback<void>): void 921 922从缓存中移出指定的Preferences实例,使用callback异步回调。 923 924应用首次调用[getPreferences](#preferencesgetpreferences)接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次[getPreferences](#preferencesgetpreferences)时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。 925 926调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 927 928**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 929 930**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 931 932**参数:** 933 934| 参数名 | 类型 | 必填 | 说明 | 935| -------- | ------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 936| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 937| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 938| callback | AsyncCallback<void> | 是 | 回调函数。当移除成功,err为undefined,否则为错误对象。 | 939 940**错误码:** 941 942以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 943 944| 错误码ID | 错误信息 | 945| -------- | ------------------------------ | 946| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 947| 801 | Capability not supported. | 948| 15500000 | Inner error. | 949| 15501001 | The operations is supported in stage mode only. | 950| 15501002 | Invalid dataGroupId. | 951 952**示例:** 953 954FA模型示例: 955 956<!--code_no_check_fa--> 957```ts 958// 获取context 959import { featureAbility } from '@kit.AbilityKit'; 960import { BusinessError } from '@kit.BasicServicesKit'; 961 962let context = featureAbility.getContext(); 963let options: preferences.Options = { name: 'myStore' }; 964preferences.removePreferencesFromCache(context, options, (err: BusinessError) => { 965 if (err) { 966 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 967 return; 968 } 969 console.info("Succeeded in removing preferences."); 970}) 971``` 972 973Stage模型示例: 974 975```ts 976import { UIAbility } from '@kit.AbilityKit'; 977import { BusinessError } from '@kit.BasicServicesKit'; 978import { window } from '@kit.ArkUI'; 979 980class EntryAbility extends UIAbility { 981 onWindowStageCreate(windowStage: window.WindowStage) { 982 let options: preferences.Options = { name: 'myStore' }; 983 preferences.removePreferencesFromCache(this.context, options, (err: BusinessError) => { 984 if (err) { 985 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 986 return; 987 } 988 console.info("Succeeded in removing preferences."); 989 }) 990 } 991} 992``` 993 994## preferences.removePreferencesFromCache<sup>10+</sup> 995 996removePreferencesFromCache(context: Context, options: Options): Promise<void> 997 998从缓存中移出指定的Preferences实例,使用Promise异步回调。 999 1000应用首次调用[getPreferences](#preferencesgetpreferences)接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次[getPreferences](#preferencesgetpreferences)时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。 1001 1002调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 1003 1004**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1005 1006**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1007 1008**参数:** 1009 1010| 参数名 | 类型 | 必填 | 说明 | 1011| ------- | ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 1012| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 1013| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 1014 1015**返回值:** 1016 1017| 类型 | 说明 | 1018| ------------------- | ------------------------- | 1019| Promise<void> | 无返回结果的Promise对象。 | 1020 1021**错误码:** 1022 1023以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1024 1025| 错误码ID | 错误信息 | 1026| -------- | ------------------------------ | 1027| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1028| 801 | Capability not supported. | 1029| 15500000 | Inner error. | 1030| 15501001 | The operations is supported in stage mode only. | 1031| 15501002 | Invalid dataGroupId. | 1032 1033**示例:** 1034 1035FA模型示例: 1036 1037<!--code_no_check_fa--> 1038```ts 1039// 获取context 1040import { featureAbility } from '@kit.AbilityKit'; 1041import { BusinessError } from '@kit.BasicServicesKit'; 1042 1043let context = featureAbility.getContext(); 1044let options: preferences.Options = { name: 'myStore' }; 1045let promise = preferences.removePreferencesFromCache(context, options); 1046promise.then(() => { 1047 console.info("Succeeded in removing preferences."); 1048}).catch((err: BusinessError) => { 1049 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 1050}) 1051``` 1052 1053Stage模型示例: 1054 1055```ts 1056import { UIAbility } from '@kit.AbilityKit'; 1057import { BusinessError } from '@kit.BasicServicesKit'; 1058import { window } from '@kit.ArkUI'; 1059 1060class EntryAbility extends UIAbility { 1061 onWindowStageCreate(windowStage: window.WindowStage) { 1062 let options: preferences.Options = { name: 'myStore' }; 1063 let promise = preferences.removePreferencesFromCache(this.context, options); 1064 promise.then(() => { 1065 console.info("Succeeded in removing preferences."); 1066 }).catch((err: BusinessError) => { 1067 console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message); 1068 }) 1069 } 1070} 1071``` 1072 1073## preferences.removePreferencesFromCacheSync<sup>10+</sup> 1074 1075removePreferencesFromCacheSync(context: Context, options: Options):void 1076 1077从缓存中移出指定的Preferences实例,此为同步接口。 1078 1079应用首次调用[getPreferences](#preferencesgetpreferences)接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次[getPreferences](#preferencesgetpreferences)时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。 1080 1081调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题,应将Preferences实例置为null,系统将会统一回收。 1082 1083**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1084 1085**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1086 1087**参数:** 1088 1089| 参数名 | 类型 | 必填 | 说明 | 1090| ------- | --------------------- | ---- | ------------------------------------------------------------ | 1091| context | Context | 是 | 应用上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 1092| options | [Options](#options10) | 是 | 与Preferences实例相关的配置选项。 | 1093 1094**错误码:** 1095 1096以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1097 1098| 错误码ID | 错误信息 | 1099| -------- | ------------------------------ | 1100| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1101| 801 | Capability not supported. | 1102| 15500000 | Inner error. | 1103| 15501001 | The operations is supported in stage mode only. | 1104| 15501002 | Invalid dataGroupId. | 1105 1106**示例:** 1107 1108FA模型示例: 1109 1110<!--code_no_check_fa--> 1111```ts 1112// 获取context 1113import { featureAbility } from '@kit.AbilityKit'; 1114let context = featureAbility.getContext(); 1115let options: preferences.Options = { name: 'myStore' }; 1116preferences.removePreferencesFromCacheSync(context, options); 1117``` 1118 1119Stage模型示例: 1120 1121```ts 1122import { UIAbility } from '@kit.AbilityKit'; 1123import { window } from '@kit.ArkUI'; 1124 1125class EntryAbility extends UIAbility { 1126 onWindowStageCreate(windowStage: window.WindowStage) { 1127 let options: preferences.Options = { name: 'myStore' }; 1128 preferences.removePreferencesFromCacheSync(this.context, options); 1129 } 1130} 1131``` 1132 1133## StorageType<sup>18+</sup> 1134Preferences的存储模式枚举。 1135 1136**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 1137 1138**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1139 1140| 名称 | 值 | 说明 | 1141| ---- | ---- | ---- | 1142| XML | 0 | 表示XML存储模式,这是Preferences的默认存储模式。<br> **特点:** 数据XML格式进行存储。对数据的操作发生在内存中,需要调用flush接口进行落盘。 | 1143| GSKV | 1 |表示GSKV存储模式。<br> **特点:** 数据以GSKV数据库模式进行存储。对数据的操作实时落盘,无需调用flush接口对数据进行落盘。 | 1144 1145 1146> **说明:** 1147> - 在选择存储模式前,建议调用isStorageTypeSupported检查当前平台是否支持对应存储模式。 1148> - 当选择某一模式通过getPreferences接口获取实例后,不允许中途切换模式。 1149> - 首选项不提供不同模式间数据的迁移,若想将数据从一模式切换至另一模式,需通过读写首选项的形式进行数据迁移。 1150> - 若需要变更首选项的存储路径,不能通过移动文件或覆盖文件的方式进行,需通过读写首选项的形式进行数据迁移。 1151 1152## preferences.isStorageTypeSupported<sup>18+</sup> 1153isStorageTypeSupported(type: StorageType): boolean 1154 1155判断当前平台是否支持传入的存储模式,此为同步接口。如果当前平台支持传入的存储模式时,该接口返回true;反之,返回false。 1156 1157**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 1158 1159**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1160 1161**参数:** 1162 1163| 参数名 | 类型 | 必填 | 说明 | 1164| ------- | --------------------- | ---- | ------------------------------------------------------------ | 1165| type | [StorageType](#storagetype18) | 是 | 需要判断是否支持的存储模式。 | 1166 1167**返回值:** 1168 1169| 类型 | 说明 | 1170| ------------------- | ------------------------- | 1171| boolean | true表示当前平台支持当前校验的存储模式,false表示当前平台不支持当前校验的存储模式。 | 1172 1173**错误码:** 1174 1175以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1176 1177| 错误码ID | 错误信息 | 1178| -------- | ------------------------------ | 1179| 401 | Parameter error. Possible causes: Incorrect parameter types. | 1180 1181 1182**示例:** 1183 1184```ts 1185let xmlType = preferences.StorageType.XML; 1186let gskvType = preferences.StorageType.GSKV; 1187let isXmlSupported = preferences.isStorageTypeSupported(xmlType); 1188let isGskvSupported = preferences.isStorageTypeSupported(gskvType); 1189console.info("Is xml supported in current platform: " + isXmlSupported); 1190console.info("Is gskv supported in current platform: " + isGskvSupported); 1191``` 1192 1193## Options<sup>10+</sup> 1194 1195Preferences实例配置选项。 1196 1197**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1198 1199| 名称 | 类型 | 必填 | 说明 | 1200| ----------- | ------ | ---- | ------------------------------------------------------------ | 1201| name | string | 是 | Preferences实例的名称。名称长度需大于零且小于等于255字节,名称中不能包含'/'且不能以'/'结尾。 <br/>**原子化服务API:** 从API version 11开始,该参数支持在原子化服务中使用。 <br/> | 1202| dataGroupId | string\|null\|undefined | 否 | 应用组ID,<!--RP1-->暂不支持指定dataGroupId在对应共享沙箱路径下创建Preferences实例。<!--RP1End--><br/>为可选参数。指定在此dataGroupId对应的沙箱路径下创建Preferences实例。当此参数不填时,默认在本应用沙箱目录下创建Preferences实例。<br/> **模型约束:** 此属性仅在Stage模型下可用。<br/>**原子化服务API:** 从API version 11开始,该参数支持在原子化服务中使用。 <br/> | 1203| storageType<sup>18+</sup> | [StorageType](#storagetype18)\|null\|undefined | 否 | 存储模式,为可选参数。表示当前Preferences实例需要使用的存储模式。当此参数不填时,默认使用XML存储模式。当选择某种存储模式创建Preferences后,不支持中途切换存储模式。 <br/>**原子化服务API:** 从API version 18开始,该参数支持在原子化服务中使用。 <br/> | 1204 1205 1206## Preferences 1207 1208首选项实例,提供获取和修改存储数据的接口。 1209 1210下列接口都需先使用[preferences.getPreferences](#preferencesgetpreferences)获取到Preferences实例,再通过此实例调用对应接口。 1211 1212 1213### get 1214 1215get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void 1216 1217从缓存的Preferences实例中获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue,使用callback异步回调。 1218 1219**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1220 1221**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1222 1223**参数:** 1224 1225| 参数名 | 类型 | 必填 | 说明 | 1226| -------- | -------------------------------------------- | ---- |---------------------------| 1227| key | string | 是 | 要获取的存储Key名称,不能为空。 | 1228| defValue | [ValueType](#valuetype) | 是 | 默认返回值。 | 1229| callback | AsyncCallback<[ValueType](#valuetype)> | 是 | 回调函数。当获取成功时,err为undefined,data为键对应的值;否则err为错误对象。 | 1230 1231**错误码:** 1232 1233以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1234 1235| 错误码ID | 错误信息 | 1236| -------- | ------------------------------ | 1237| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1238| 15500000 | Inner error. | 1239 1240**示例:** 1241 1242```ts 1243import { BusinessError } from '@kit.BasicServicesKit'; 1244 1245dataPreferences.get('startup', 'default', (err: BusinessError, val: preferences.ValueType) => { 1246 if (err) { 1247 console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message); 1248 return; 1249 } 1250 console.info("Succeeded in getting value of 'startup'. val: " + val); 1251}) 1252``` 1253 1254### get 1255 1256get(key: string, defValue: ValueType): Promise<ValueType> 1257 1258从缓存的Preferences实例中获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue,使用Promise异步回调。 1259 1260**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1261 1262**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1263 1264 **参数:** 1265 1266| 参数名 | 类型 | 必填 | 说明 | 1267| -------- | ----------------------- | ---- |--------| 1268| key | string | 是 | 要获取的存储Key名称,不能为空。 | 1269| defValue | [ValueType](#valuetype) | 是 | 默认返回值。 | 1270 1271**返回值:** 1272 1273| 类型 | 说明 | 1274| ----------------------------------- | ----------------------------- | 1275| Promise<[ValueType](#valuetype)> | Promise对象,返回键对应的值。 | 1276 1277**错误码:** 1278 1279以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1280 1281| 错误码ID | 错误信息 | 1282| -------- | ------------------------------ | 1283| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1284| 15500000 | Inner error. | 1285 1286**示例:** 1287 1288```ts 1289import { BusinessError } from '@kit.BasicServicesKit'; 1290 1291let promise = dataPreferences.get('startup', 'default'); 1292promise.then((data: preferences.ValueType) => { 1293 console.info("Succeeded in getting value of 'startup'. Data: " + data); 1294}).catch((err: BusinessError) => { 1295 console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message); 1296}) 1297``` 1298 1299### getSync<sup>10+</sup> 1300 1301getSync(key: string, defValue: ValueType): ValueType 1302 1303从缓存的Preferences实例中获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue,此为同步接口。 1304 1305**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1306 1307**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1308 1309**参数:** 1310 1311| 参数名 | 类型 | 必填 | 说明 | 1312| -------- | ----------------------- | ---- |---------------------| 1313| key | string | 是 | 要获取的存储Key名称,不能为空。 | 1314| defValue | [ValueType](#valuetype) | 是 | 默认返回值。 | 1315 1316**返回值:** 1317 1318| 类型 | 说明 | 1319| ----------------------------------- | ----------------------------- | 1320| [ValueType](#valuetype) | 返回键对应的值。 | 1321 1322**错误码:** 1323 1324以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1325 1326| 错误码ID | 错误信息 | 1327| -------- | ------------------------------ | 1328| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1329| 15500000 | Inner error. | 1330 1331**示例:** 1332 1333```ts 1334let value: preferences.ValueType = dataPreferences.getSync('startup', 'default'); 1335``` 1336 1337### getAll 1338 1339getAll(callback: AsyncCallback<Object>): void 1340 1341从缓存的Preferences实例中获取所有键值数据。 1342 1343**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1344 1345**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1346 1347**参数:** 1348 1349| 参数名 | 类型 | 必填 | 说明 | 1350| -------- | --------------------------- | ---- | ------------------------------------------------------------ | 1351| callback | AsyncCallback<Object> | 是 | 回调函数。当获取成功,err为undefined,value为所有键值数据;否则err为错误对象。 | 1352 1353**错误码:** 1354 1355以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1356 1357| 错误码ID | 错误信息 | 1358| -------- | ------------------------------ | 1359| 401 | Parameter error. Mandatory parameters are left unspecified.| 1360| 15500000 | Inner error. | 1361 1362**示例:** 1363 1364```ts 1365import { BusinessError } from '@kit.BasicServicesKit'; 1366 1367// 由于ArkTS中无Object.keys,且无法使用for..in... 1368// 若报ArkTS问题,请将此方法单独抽离至一个ts文件中并暴露,在需要用到的ets文件中引入使用 1369function getObjKeys(obj: Object): string[] { 1370 let keys = Object.keys(obj); 1371 return keys; 1372} 1373 1374dataPreferences.getAll((err: BusinessError, value: Object) => { 1375 if (err) { 1376 console.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message); 1377 return; 1378 } 1379 let allKeys = getObjKeys(value); 1380 console.info("getAll keys = " + allKeys); 1381 console.info("getAll object = " + JSON.stringify(value)); 1382}) 1383``` 1384 1385 1386### getAll 1387 1388getAll(): Promise<Object> 1389 1390从缓存的Preferences实例中获取所有键值数据。 1391 1392**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1393 1394**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1395 1396**返回值:** 1397 1398| 类型 | 说明 | 1399| --------------------- | ------------------------------------------- | 1400| Promise<Object> | Promise对象,返回含有所有键值数据。 | 1401 1402**错误码:** 1403 1404以下错误码的详细介绍请参见[用户首选项错误码](errorcode-preferences.md)。 1405 1406| 错误码ID | 错误信息 | 1407| -------- | ------------------------------ | 1408| 15500000 | Inner error. | 1409 1410**示例:** 1411 1412```ts 1413import { BusinessError } from '@kit.BasicServicesKit'; 1414 1415// 由于ArkTS中无Object.keys,且无法使用for..in... 1416// 若报ArkTS问题,请将此方法单独抽离至一个ts文件中并暴露,在需要用到的ets文件中引入使用 1417function getObjKeys(obj: Object): string[] { 1418 let keys = Object.keys(obj); 1419 return keys; 1420} 1421 1422let promise = dataPreferences.getAll(); 1423promise.then((value: Object) => { 1424 let allKeys = getObjKeys(value); 1425 console.info('getAll keys = ' + allKeys); 1426 console.info("getAll object = " + JSON.stringify(value)); 1427}).catch((err: BusinessError) => { 1428 console.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message); 1429}) 1430``` 1431 1432### getAllSync<sup>10+</sup> 1433 1434getAllSync(): Object 1435 1436从缓存的Preferences实例中获取所有键值数据,此为同步接口。 1437 1438**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1439 1440**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1441 1442**返回值:** 1443 1444| 类型 | 说明 | 1445| --------------------- | ------------------------------------------- | 1446| Object | 返回含有所有键值数据。 | 1447 1448**错误码:** 1449 1450以下错误码的详细介绍请参见[用户首选项错误码](errorcode-preferences.md)。 1451 1452| 错误码ID | 错误信息 | 1453| -------- | ------------------------------ | 1454| 15500000 | Inner error. | 1455 1456**示例:** 1457 1458```ts 1459// 由于ArkTS中无Object.keys,且无法使用for..in... 1460// 若报ArkTS问题,请将此方法单独抽离至一个ts文件中并暴露,在需要用到的ets文件中引入使用 1461function getObjKeys(obj: Object): string[] { 1462 let keys = Object.keys(obj); 1463 return keys; 1464} 1465 1466let value = dataPreferences.getAllSync(); 1467let allKeys = getObjKeys(value); 1468console.info('getAll keys = ' + allKeys); 1469console.info("getAll object = " + JSON.stringify(value)); 1470``` 1471 1472### put 1473 1474put(key: string, value: ValueType, callback: AsyncCallback<void>): void 1475 1476将数据写入缓存的Preferences实例中,可通过[flush](#flush)将Preferences实例持久化,使用callback异步回调。 1477 1478 > **说明:** 1479 > 1480 > 当value中包含非UTF-8格式的字符串时,请使用Uint8Array类型存储,否则会造成持久化文件出现格式错误造成文件损坏。 1481 > 1482 > 当对应的键已经存在时,put()方法会覆盖其值。可以使用hasSync()方法检查是否存在对应键值对。 1483 1484**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1485 1486**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1487 1488**参数:** 1489 1490| 参数名 | 类型 | 必填 | 说明 | 1491| -------- | ------------------------- | ---- |-------------------------| 1492| key | string | 是 | 要修改的存储的Key,不能为空。 | 1493| value | [ValueType](#valuetype) | 是 | 存储的新值。 | 1494| callback | AsyncCallback<void> | 是 | 回调函数。当数据写入成功,err为undefined;否则为错误对象。 | 1495 1496**错误码:** 1497 1498以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1499 1500| 错误码ID | 错误信息 | 1501| -------- | ------------------------------ | 1502| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1503| 15500000 | Inner error. | 1504 1505**示例:** 1506 1507```ts 1508import { BusinessError } from '@kit.BasicServicesKit'; 1509 1510dataPreferences.put('startup', 'auto', (err: BusinessError) => { 1511 if (err) { 1512 console.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message); 1513 return; 1514 } 1515 console.info("Succeeded in putting value of 'startup'."); 1516}) 1517``` 1518 1519 1520### put 1521 1522put(key: string, value: ValueType): Promise<void> 1523 1524将数据写入缓存的Preferences实例中,可通过[flush](#flush)将Preferences实例持久化,使用Promise异步回调。 1525 1526 > **说明:** 1527 > 1528 > 当value中包含非UTF-8格式的字符串时,请使用Uint8Array类型存储,否则会造成持久化文件出现格式错误造成文件损坏。 1529 > 1530 > 当对应的键已经存在时,put()方法会覆盖其值。可以使用hasSync()方法检查是否存在对应键值对。 1531 1532**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1533 1534**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1535 1536**参数:** 1537 1538| 参数名 | 类型 | 必填 | 说明 | 1539| ------ | ----------------------- | ---- |--------------------------| 1540| key | string | 是 | 要修改的存储的Key,不能为空。 | 1541| value | [ValueType](#valuetype) | 是 | 存储的新值。 | 1542 1543**返回值:** 1544 1545| 类型 | 说明 | 1546| ------------------- | ------------------------- | 1547| Promise<void> | 无返回结果的Promise对象。 | 1548 1549**错误码:** 1550 1551以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1552 1553| 错误码ID | 错误信息 | 1554| -------- | ------------------------------ | 1555| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1556| 15500000 | Inner error. | 1557 1558**示例:** 1559 1560```ts 1561import { BusinessError } from '@kit.BasicServicesKit'; 1562 1563let promise = dataPreferences.put('startup', 'auto'); 1564promise.then(() => { 1565 console.info("Succeeded in putting value of 'startup'."); 1566}).catch((err: BusinessError) => { 1567 console.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message); 1568}) 1569``` 1570 1571 1572### putSync<sup>10+</sup> 1573 1574putSync(key: string, value: ValueType): void 1575 1576将数据写入缓存的Preferences实例中,可通过[flush](#flush)将Preferences实例持久化,此为同步接口。 1577 1578 > **说明:** 1579 > 1580 > 当value中包含非UTF-8格式的字符串时,请使用Uint8Array类型存储,否则会造成持久化文件出现格式错误造成文件损坏。 1581 > 1582 > 当对应的键已经存在时,putSync()方法会覆盖其值。可以使用hasSync()方法检查是否存在对应键值对。 1583 1584**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1585 1586**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1587 1588**参数:** 1589 1590| 参数名 | 类型 | 必填 | 说明 | 1591| ------ | ----------------------- | ---- | ------------------------ | 1592| key | string | 是 | 要修改的存储的Key,不能为空。 | 1593| value | [ValueType](#valuetype) | 是 | 存储的新值。 | 1594 1595**错误码:** 1596 1597以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1598 1599| 错误码ID | 错误信息 | 1600| -------- | ------------------------------ | 1601| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1602| 15500000 | Inner error. | 1603 1604**示例:** 1605 1606```ts 1607dataPreferences.putSync('startup', 'auto'); 1608``` 1609 1610 1611### has 1612 1613has(key: string, callback: AsyncCallback<boolean>): void 1614 1615检查缓存的Preferences实例中是否包含名为给定Key的存储键值对,使用callback异步回调。 1616 1617**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1618 1619**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1620 1621**参数:** 1622 1623| 参数名 | 类型 | 必填 | 说明 | 1624| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 1625| key | string | 是 | 要检查的存储key名称,不能为空。 | 1626| callback | AsyncCallback<boolean> | 是 | 回调函数。返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。 | 1627 1628**错误码:** 1629 1630以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1631 1632| 错误码ID | 错误信息 | 1633| -------- | ------------------------------ | 1634| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1635| 15500000 | Inner error. | 1636 1637**示例:** 1638 1639```ts 1640import { BusinessError } from '@kit.BasicServicesKit'; 1641 1642dataPreferences.has('startup', (err: BusinessError, val: boolean) => { 1643 if (err) { 1644 console.error("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message); 1645 return; 1646 } 1647 if (val) { 1648 console.info("The key 'startup' is contained."); 1649 } else { 1650 console.info("The key 'startup' dose not contain."); 1651 } 1652}) 1653``` 1654 1655 1656### has 1657 1658has(key: string): Promise<boolean> 1659 1660检查缓存的Preferences实例中是否包含名为给定Key的存储键值对,使用Promise异步回调。 1661 1662**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1663 1664**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1665 1666**参数:** 1667 1668| 参数名 | 类型 | 必填 | 说明 | 1669| ------ | ------ | ---- | ------------------------------- | 1670| key | string | 是 | 要检查的存储key名称,不能为空。 | 1671 1672**返回值:** 1673 1674| 类型 | 说明 | 1675| ---------------------- | ------------------------------------------------------------ | 1676| Promise<boolean> | Promise对象。返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。 | 1677 1678**错误码:** 1679 1680以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1681 1682| 错误码ID | 错误信息 | 1683| -------- | ------------------------------ | 1684| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1685| 15500000 | Inner error. | 1686 1687**示例:** 1688 1689```ts 1690import { BusinessError } from '@kit.BasicServicesKit'; 1691 1692let promise = dataPreferences.has('startup'); 1693promise.then((val: boolean) => { 1694 if (val) { 1695 console.info("The key 'startup' is contained."); 1696 } else { 1697 console.info("The key 'startup' dose not contain."); 1698 } 1699}).catch((err: BusinessError) => { 1700 console.error("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message); 1701}) 1702``` 1703 1704 1705### hasSync<sup>10+</sup> 1706 1707hasSync(key: string): boolean 1708 1709检查缓存的Preferences实例中是否包含名为给定Key的存储键值对,此为同步接口。 1710 1711**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1712 1713**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1714 1715**参数:** 1716 1717| 参数名 | 类型 | 必填 | 说明 | 1718| ------ | ------ | ---- | ------------------------------- | 1719| key | string | 是 | 要检查的存储key名称,不能为空。 | 1720 1721**返回值:** 1722 1723| 类型 | 说明 | 1724| ---------------------- | ------------------------------------------------------------ | 1725| boolean | 返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。 | 1726 1727**错误码:** 1728 1729以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1730 1731| 错误码ID | 错误信息 | 1732| -------- | ------------------------------ | 1733| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1734| 15500000 | Inner error. | 1735 1736**示例:** 1737 1738```ts 1739let isExist: boolean = dataPreferences.hasSync('startup'); 1740if (isExist) { 1741 console.info("The key 'startup' is contained."); 1742} else { 1743 console.info("The key 'startup' dose not contain."); 1744} 1745``` 1746 1747 1748### delete 1749 1750delete(key: string, callback: AsyncCallback<void>): void 1751 1752从缓存的Preferences实例中删除名为给定Key的存储键值对,可通过[flush](#flush)将Preferences实例持久化,使用callback异步回调。 1753 1754**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1755 1756**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1757 1758**参数:** 1759 1760| 参数名 | 类型 | 必填 | 说明 | 1761| -------- | ------------------------- | ---- | ---------------------------------------------------- | 1762| key | string | 是 | 要删除的存储Key名称,不能为空。 | 1763| callback | AsyncCallback<void> | 是 | 回调函数。当删除成功,err为undefined;否则为错误对象。 | 1764 1765**错误码:** 1766 1767以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1768 1769| 错误码ID | 错误信息 | 1770| -------- | ------------------------------ | 1771| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1772| 15500000 | Inner error. | 1773 1774**示例:** 1775 1776```ts 1777import { BusinessError } from '@kit.BasicServicesKit'; 1778 1779dataPreferences.delete('startup', (err: BusinessError) => { 1780 if (err) { 1781 console.error("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message); 1782 return; 1783 } 1784 console.info("Succeeded in deleting the key 'startup'."); 1785}) 1786``` 1787 1788 1789### delete 1790 1791delete(key: string): Promise<void> 1792 1793从缓存的Preferences实例中删除名为给定Key的存储键值对,可通过[flush](#flush)将Preferences实例持久化,使用Promise异步回调。 1794 1795**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1796 1797**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1798 1799**参数:** 1800 1801| 参数名 | 类型 | 必填 | 说明 | 1802| ------ | ------ | ---- | ------------------------------- | 1803| key | string | 是 | 要删除的存储key名称,不能为空。 | 1804 1805**返回值:** 1806 1807| 类型 | 说明 | 1808| ------------------- | ------------------------- | 1809| Promise<void> | 无返回结果的Promise对象。 | 1810 1811**错误码:** 1812 1813以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1814 1815| 错误码ID | 错误信息 | 1816| -------- | ------------------------------ | 1817| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1818| 15500000 | Inner error. | 1819 1820**示例:** 1821 1822```ts 1823import { BusinessError } from '@kit.BasicServicesKit'; 1824 1825let promise = dataPreferences.delete('startup'); 1826promise.then(() => { 1827 console.info("Succeeded in deleting the key 'startup'."); 1828}).catch((err: BusinessError) => { 1829 console.error("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message); 1830}) 1831``` 1832 1833 1834### deleteSync<sup>10+</sup> 1835 1836deleteSync(key: string): void 1837 1838从缓存的Preferences实例中删除名为给定Key的存储键值对,可通过[flush](#flush)将Preferences实例持久化,此为同步接口。 1839 1840**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1841 1842**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1843 1844**参数:** 1845 1846| 参数名 | 类型 | 必填 | 说明 | 1847| ------ | ------ | ---- | ------------------------------- | 1848| key | string | 是 | 要删除的存储key名称,不能为空。 | 1849 1850**错误码:** 1851 1852以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1853 1854| 错误码ID | 错误信息 | 1855| -------- | ------------------------------ | 1856| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 1857| 15500000 | Inner error. | 1858 1859**示例:** 1860 1861```ts 1862dataPreferences.deleteSync('startup'); 1863``` 1864 1865 1866### flush 1867 1868flush(callback: AsyncCallback<void>): void 1869 1870将缓存的Preferences实例中的数据异步存储到用户首选项的持久化文件中,使用callback异步回调。 1871 1872 > **说明:** 1873 > 1874 > 当数据未修改或修改后的数据与缓存数据一致时,不会刷新持久化文件。 1875 1876**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1877 1878**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1879 1880**参数:** 1881 1882| 参数名 | 类型 | 必填 | 说明 | 1883| -------- | ------------------------- | ---- | ---------------------------------------------------- | 1884| callback | AsyncCallback<void> | 是 | 回调函数。当保存成功,err为undefined;否则为错误对象。 | 1885 1886**错误码:** 1887 1888以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1889 1890| 错误码ID | 错误信息 | 1891| -------- | ------------------------------ | 1892| 401 | Parameter error. Mandatory parameters are left unspecified. | 1893| 15500000 | Inner error. | 1894 1895**示例:** 1896 1897```ts 1898import { BusinessError } from '@kit.BasicServicesKit'; 1899 1900dataPreferences.flush((err: BusinessError) => { 1901 if (err) { 1902 console.error("Failed to flush. code =" + err.code + ", message =" + err.message); 1903 return; 1904 } 1905 console.info("Succeeded in flushing."); 1906}) 1907``` 1908 1909 1910### flush 1911 1912flush(): Promise<void> 1913 1914将缓存的Preferences实例中的数据异步存储到用户首选项的持久化文件中,使用Promise异步回调。 1915 1916 > **说明:** 1917 > 1918 > 当数据未修改或修改后的数据与缓存数据一致时,不会刷新持久化文件。 1919 1920**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1921 1922**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1923 1924**返回值:** 1925 1926| 类型 | 说明 | 1927| ------------------- | ------------------------- | 1928| Promise<void> | 无返回结果的Promise对象。 | 1929 1930**错误码:** 1931 1932以下错误码的详细介绍请参见[用户首选项错误码](errorcode-preferences.md)。 1933 1934| 错误码ID | 错误信息 | 1935| -------- | ------------------------------ | 1936| 15500000 | Inner error. | 1937 1938**示例:** 1939 1940```ts 1941import { BusinessError } from '@kit.BasicServicesKit'; 1942 1943let promise = dataPreferences.flush(); 1944promise.then(() => { 1945 console.info("Succeeded in flushing."); 1946}).catch((err: BusinessError) => { 1947 console.error("Failed to flush. code =" + err.code + ", message =" + err.message); 1948}) 1949``` 1950 1951### flushSync<sup>14+</sup> 1952 1953flushSync(): void 1954 1955将缓存的Preferences实例中的数据存储到用户首选项的持久化文件中。 1956 1957 > **说明:** 1958 > 1959 > 当数据未修改或修改后的数据与缓存数据一致时,不会刷新持久化文件。 1960 1961**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 1962 1963**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1964 1965**错误码:** 1966 1967以下错误码的详细介绍请参见[用户首选项错误码](errorcode-preferences.md)。 1968 1969| 错误码ID | 错误信息 | 1970| -------- | ------------------------------ | 1971| 15500000 | Inner error. | 1972 1973**示例:** 1974 1975```ts 1976dataPreferences.flushSync(); 1977``` 1978 1979### clear 1980 1981clear(callback: AsyncCallback<void>): void 1982 1983清除缓存的Preferences实例中的所有数据,可通过[flush](#flush)将Preferences实例持久化,使用callback异步回调。 1984 1985**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1986 1987**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 1988 1989**参数:** 1990 1991| 参数名 | 类型 | 必填 | 说明 | 1992| -------- | ------------------------- | ---- | ---------------------------------------------------- | 1993| callback | AsyncCallback<void> | 是 | 回调函数。当清除成功,err为undefined;否则为错误对象。 | 1994 1995**错误码:** 1996 1997以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 1998 1999| 错误码ID | 错误信息 | 2000| -------- | ------------------------------ | 2001| 401 | Parameter error. Mandatory parameters are left unspecified. | 2002| 15500000 | Inner error. | 2003 2004**示例:** 2005 2006```ts 2007import { BusinessError } from '@kit.BasicServicesKit'; 2008 2009dataPreferences.clear((err: BusinessError) =>{ 2010 if (err) { 2011 console.error("Failed to clear. code =" + err.code + ", message =" + err.message); 2012 return; 2013 } 2014 console.info("Succeeded in clearing."); 2015}) 2016``` 2017 2018 2019### clear 2020 2021clear(): Promise<void> 2022 2023清除缓存的Preferences实例中的所有数据,可通过[flush](#flush)将Preferences实例持久化,使用Promise异步回调。 2024 2025**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2026 2027**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2028 2029**返回值:** 2030 2031| 类型 | 说明 | 2032| ------------------- | ------------------------- | 2033| Promise<void> | 无返回结果的Promise对象。 | 2034 2035**错误码:** 2036 2037以下错误码的详细介绍请参见[用户首选项错误码](errorcode-preferences.md)。 2038 2039| 错误码ID | 错误信息 | 2040| -------- | ------------------------------ | 2041| 15500000 | Inner error. | 2042 2043**示例:** 2044 2045```ts 2046import { BusinessError } from '@kit.BasicServicesKit'; 2047 2048let promise = dataPreferences.clear(); 2049promise.then(() => { 2050 console.info("Succeeded in clearing."); 2051}).catch((err: BusinessError) => { 2052 console.error("Failed to clear. code =" + err.code + ", message =" + err.message); 2053}) 2054``` 2055 2056 2057### clearSync<sup>10+</sup> 2058 2059clearSync(): void 2060 2061清除缓存的Preferences实例中的所有数据,可通过[flush](#flush)将Preferences实例持久化,此为同步接口。 2062 2063**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2064 2065**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2066 2067**示例:** 2068 2069```ts 2070dataPreferences.clearSync(); 2071``` 2072 2073 2074### on('change') 2075 2076on(type: 'change', callback: Callback<string>): void 2077 2078订阅数据变更,订阅的Key的值发生变更后,在执行[flush](#flush)方法后,触发callback回调。 2079 2080 > **说明:** 2081 > 2082 > 当调用[removePreferencesFromCache](#preferencesremovepreferencesfromcache)或者[deletePreferences](#preferencesdeletepreferences)后,订阅的数据变更会主动取消订阅,在重新[getPreferences](#preferencesgetpreferences)后需要重新订阅数据变更。 2083 2084**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2085 2086**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2087 2088**参数:** 2089 2090| 参数名 | 类型 | 必填 | 说明 | 2091| -------- | -------- | ---- | ---------------------------------------- | 2092| type | string | 是 | 事件类型,固定值'change',表示数据变更。 | 2093| callback | Callback<string> | 是 | 回调函数。 | 2094 2095**错误码:** 2096 2097以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 2098 2099| 错误码ID | 错误信息 | 2100| -------- | ------------------------------ | 2101| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 2102| 15500000 | Inner error. | 2103 2104**示例:** 2105 2106```ts 2107import { BusinessError } from '@kit.BasicServicesKit'; 2108 2109let observer = (key: string) => { 2110 console.info("The key " + key + " changed."); 2111} 2112dataPreferences.on('change', observer); 2113dataPreferences.putSync('startup', 'manual'); 2114dataPreferences.flush((err: BusinessError) => { 2115 if (err) { 2116 console.error("Failed to flush. Cause: " + err); 2117 return; 2118 } 2119 console.info("Succeeded in flushing."); 2120}) 2121``` 2122 2123### on('multiProcessChange')<sup>10+</sup> 2124 2125on(type: 'multiProcessChange', callback: Callback<string>): void 2126 2127订阅进程间数据变更,多个进程持有同一个首选项文件时,在任意一个进程(包括本进程)执行[flush](#flush)方法,持久化文件发生变更后,触发callback回调。 2128 2129本接口提供给申请了[dataGroupId](#options10)的应用进行使用,未申请的应用不推荐使用,多进程操作可能会损坏持久化文件,导致数据丢失。 2130 2131 > **说明:** 2132 > 2133 > 同一持久化文件在当前进程订阅进程间数据变更的最大数量为50次,超过最大限制后会订阅失败。建议在触发callback回调后及时取消订阅。 2134 > 2135 > 当调用[removePreferencesFromCache](#preferencesremovepreferencesfromcache)或者[deletePreferences](#preferencesdeletepreferences)后,订阅的数据变更会主动取消订阅,在重新[getPreferences](#preferencesgetpreferences)后需要重新订阅数据变更。 2136 2137**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2138 2139**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2140 2141**参数:** 2142 2143| 参数名 | 类型 | 必填 | 说明 | 2144| -------- | -------- | ---- | ------------------------------------------------------------ | 2145| type | string | 是 | 事件类型,固定值'multiProcessChange',表示多进程间的数据变更。 | 2146| callback | Callback<string> | 是 | 回调函数。 | 2147 2148**错误码:** 2149 2150以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 2151 2152| 错误码ID | 错误信息 | 2153| -------- | -------------------------------------- | 2154| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 2155| 15500000 | Inner error. | 2156| 15500019 | Failed to obtain the subscription service. | 2157 2158**示例:** 2159 2160```ts 2161import { BusinessError } from '@kit.BasicServicesKit'; 2162 2163let observer = (key: string) => { 2164 console.info("The key " + key + " changed."); 2165} 2166dataPreferences.on('multiProcessChange', observer); 2167dataPreferences.putSync('startup', 'manual'); 2168dataPreferences.flush((err: BusinessError) => { 2169 if (err) { 2170 console.error("Failed to flush. Cause: " + err); 2171 return; 2172 } 2173 console.info("Succeeded in flushing."); 2174}) 2175``` 2176 2177### on('dataChange')<sup>12+</sup> 2178 2179on(type: 'dataChange', keys: Array<string>, callback: Callback<Record<string, ValueType>>): void 2180 2181精确订阅数据变更,只有被订阅的key值发生变更后,在执行[flush](#flush)方法后,触发callback回调。 2182 2183 > **说明:** 2184 > 2185 > 当调用[removePreferencesFromCache](#preferencesremovepreferencesfromcache)或者[deletePreferences](#preferencesdeletepreferences)后,订阅的数据变更会主动取消订阅,在重新[getPreferences](#preferencesgetpreferences)后需要重新订阅数据变更。 2186 2187**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2188 2189**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2190 2191**参数:** 2192 2193| 参数名 | 类型 | 必填 | 说明 | 2194| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2195| type | string | 是 | 事件类型,固定值'dataChange',表示精确的数据变更。 | 2196| keys | Array<string> | 是 | 需要订阅的key集合。 | 2197| callback | Callback<Record<string, [ValueType](#valuetype)>> | 是 | 回调函数。回调支持返回多个键值对,其中键为发生变更的订阅key,值为变更后的数据:支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>、Uint8Array、object类型。 | 2198 2199**错误码:** 2200 2201以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 2202 2203| 错误码ID | 错误信息 | 2204| -------- | ------------------------------ | 2205| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 2206| 15500000 | Inner error. | 2207 2208**示例:** 2209 2210```ts 2211import { BusinessError } from '@kit.BasicServicesKit'; 2212 2213let observer = (data: Record<string, preferences.ValueType>) => { 2214 for (const keyValue of Object.entries(data)) { 2215 console.info(`observer : ${keyValue}`); 2216 } 2217 console.info("The observer called."); 2218} 2219let keys = ['name', 'age']; 2220dataPreferences.on('dataChange', keys, observer); 2221dataPreferences.putSync('name', 'xiaohong'); 2222dataPreferences.putSync('weight', 125); 2223dataPreferences.flush((err: BusinessError) => { 2224 if (err) { 2225 console.error("Failed to flush. Cause: " + err); 2226 return; 2227 } 2228 console.info("Succeeded in flushing."); 2229}) 2230``` 2231 2232### off('change') 2233 2234off(type: 'change', callback?: Callback<string>): void 2235 2236取消订阅数据变更。 2237 2238**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2239 2240**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2241 2242**参数:** 2243 2244| 参数名 | 类型 | 必填 | 说明 | 2245| -------- | -------- | ---- | ------------------------------------------------------------ | 2246| type | string | 是 | 事件类型,固定值'change',表示数据变更。 | 2247| callback | Callback<string> | 否 | 需要取消的回调函数,不填写则全部取消。 | 2248 2249**错误码:** 2250 2251以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 2252 2253| 错误码ID | 错误信息 | 2254| -------- | ------------------------------ | 2255| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 2256| 15500000 | Inner error. | 2257 2258**示例:** 2259 2260```ts 2261import { BusinessError } from '@kit.BasicServicesKit'; 2262 2263let observer = (key: string) => { 2264 console.info("The key " + key + " changed."); 2265} 2266dataPreferences.on('change', observer); 2267dataPreferences.putSync('startup', 'auto'); 2268dataPreferences.flush((err: BusinessError) => { 2269 if (err) { 2270 console.error("Failed to flush. Cause: " + err); 2271 return; 2272 } 2273 console.info("Succeeded in flushing."); 2274}) 2275dataPreferences.off('change', observer); 2276``` 2277 2278### off('multiProcessChange')<sup>10+</sup> 2279 2280off(type: 'multiProcessChange', callback?: Callback<string>): void 2281 2282取消订阅进程间数据变更。 2283 2284本接口提供给申请了[dataGroupId](#options10)的应用进行使用,未申请的应用不推荐使用,多进程操作可能会损坏持久化文件,导致数据丢失。 2285 2286**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2287 2288**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2289 2290**参数:** 2291 2292| 参数名 | 类型 | 必填 | 说明 | 2293| -------- | -------- | ---- | ------------------------------------------------------------ | 2294| type | string | 是 | 事件类型,固定值'multiProcessChange',表示多进程间的数据变更。 | 2295| callback | Callback<string> | 否 | 需要取消的回调函数,不填写则全部取消。 | 2296 2297**错误码:** 2298 2299以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 2300 2301| 错误码ID | 错误信息 | 2302| -------- | ------------------------------ | 2303| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 2304| 15500000 | Inner error. | 2305 2306**示例:** 2307 2308```ts 2309import { BusinessError } from '@kit.BasicServicesKit'; 2310 2311let observer = (key: string) => { 2312 console.info("The key " + key + " changed."); 2313} 2314dataPreferences.on('multiProcessChange', observer); 2315dataPreferences.putSync('startup', 'auto'); 2316dataPreferences.flush((err: BusinessError) => { 2317 if (err) { 2318 console.error("Failed to flush. Cause: " + err); 2319 return; 2320 } 2321 console.info("Succeeded in flushing."); 2322}) 2323dataPreferences.off('multiProcessChange', observer); 2324``` 2325### off('dataChange')<sup>12+</sup> 2326 2327off(type: 'dataChange', keys: Array<string>, callback?: Callback<Record<string, ValueType>>): void 2328 2329取消精确订阅数据变更。 2330 2331**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2332 2333**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2334 2335**参数:** 2336 2337| 参数名 | 类型 | 必填 | 说明 | 2338| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2339| type | string | 是 | 事件类型,固定值'dataChange',表示精确的数据变更。 | 2340| keys | Array<string> | 是 | 需要取消订阅的key集合,当keys为空数组时,表示取消订阅全部key;当keys为非空数组时,表示只取消订阅key集合中的key。 | 2341| callback | Callback<Record<string, [ValueType](#valuetype)>> | 否 | 需要取消的回调函数,若callback不填写,表示所有的callback都需要处理;若callback填写,表示只处理该callback。 | 2342 2343**错误码:** 2344 2345以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[用户首选项错误码](errorcode-preferences.md)。 2346 2347| 错误码ID | 错误信息 | 2348| -------- | ------------------------------ | 2349| 401 | Parameter error. Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | 2350| 15500000 | Inner error. | 2351 2352**示例:** 2353 2354```ts 2355import { BusinessError } from '@kit.BasicServicesKit'; 2356 2357let observer = (data: Record<string, preferences.ValueType>) => { 2358 for (const keyValue of Object.entries(data)) { 2359 console.info(`observer : ${keyValue}`); 2360 } 2361 console.info("The observer called."); 2362} 2363let keys = ['name', 'age']; 2364dataPreferences.on('dataChange', keys, observer); 2365dataPreferences.putSync('name', 'xiaohong'); 2366dataPreferences.putSync('weight', 125); 2367dataPreferences.flush((err: BusinessError) => { 2368 if (err) { 2369 console.error("Failed to flush. Cause: " + err); 2370 return; 2371 } 2372 console.info("Succeeded in flushing."); 2373}) 2374dataPreferences.off('dataChange', keys, observer); 2375``` 2376 2377## ValueType 2378 2379type ValueType = number | string | boolean | Array\<number> | Array\<string> | Array\<boolean> | Uint8Array | object | bigint 2380 2381用于表示允许的数据字段类型。 2382 2383**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2384 2385**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 2386 2387| 类型 | 说明 | 2388|--------------------------|-------------------| 2389| number | 表示值类型为数字。 | 2390| string | 表示值类型为字符串。 | 2391| boolean | 表示值类型为布尔值。 | 2392| Array\<number> | 表示值类型为数字类型的数组。 | 2393| Array\<boolean> | 表示值类型为布尔类型的数组。 | 2394| Array\<string> | 表示值类型为字符串类型的数组。 | 2395| Uint8Array<sup>11+</sup> | 表示值类型为8位无符号整型的数组。 | 2396| object<sup>12+</sup> | 表示值类型为对象。 | 2397| bigint<sup>12+</sup> | 表示值类型为任意精度格式的整数。 | 2398