W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
狀態(tài)管理模塊提供了應用程序的數(shù)據(jù)存儲能力、持久化數(shù)據(jù)管理能力、UIAbility數(shù)據(jù)存儲能力和應用程序需要的環(huán)境狀態(tài)。
本模塊首批接口從API version 7開始支持,后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。
本文中T和S的含義如下:
類型 | 描述 |
---|---|
T | Class,number,boolean,string和這些類型的數(shù)組形式。 |
S | number,boolean,string。 |
static Link(propName: string): any
與AppStorage中對應的propName建立雙向數(shù)據(jù)綁定。如果給定的propName在AppStorage中存在,返回與AppStorage中propName對應屬性的雙向綁定數(shù)據(jù)。
雙向綁定數(shù)據(jù)的修改會同步回AppStorage中,AppStorage會將變化同步到所有綁定該propName的數(shù)據(jù)和自定義組件中。
如果AppStorage中不存在propName,則返回undefined。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
any | 返回雙向綁定的數(shù)據(jù),如果AppStorage不存在對應的propName,在返回undefined。 |
- AppStorage.SetOrCreate('PropA', 47);
- let linkToPropA1 = AppStorage.Link('PropA');
- let linkToPropA2 = AppStorage.Link('PropA'); // linkToPropA2.get() == 47
- linkToPropA1.set(48); // 雙向同步: linkToPropA1.get() == linkToPropA2.get() == 48
static SetAndLink<T>(propName: string, defaultValue: T): SubscribedAbstractProperty<T>
與Link接口類似,如果給定的propName在AppStorage中存在,則返回該propName對應的屬性的雙向綁定數(shù)據(jù)。如果不存在,則使用defaultValue在AppStorage創(chuàng)建和初始化propName,返回其雙向綁定數(shù)據(jù)。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
defaultValue | T | 是 | 當propName在AppStorage中不存在,使用defaultValue在AppStorage中初始化對應的propName。 |
返回值:
類型 | 描述 |
---|---|
SubscribedAbstractProperty<T> | SubscribedAbstractProperty<T>的實例,和AppStorage中propName對應屬性的雙向綁定的數(shù)據(jù)。 |
- AppStorage.SetOrCreate('PropA', 47);
- let link1: SubscribedAbstractProperty<number> = AppStorage.SetAndLink('PropB', 49); // Create PropB 49
- let link2: SubscribedAbstractProperty<number> = AppStorage.SetAndLink('PropA', 50); // PropA exists, remains 47
static Prop(propName: string): any
與AppStorage中對應的propName建立單向屬性綁定。如果給定的propName在AppStorage中存在,則返回與AppStorage中propName對應屬性的單向綁定數(shù)據(jù)。如果AppStorage中不存在propName,則返回undefined。單向綁定數(shù)據(jù)的修改不會被同步回AppStorage中。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
any | 返回單向綁定的數(shù)據(jù),如果AppStorage不存在對應的propName,在返回undefined。 |
- AppStorage.SetOrCreate('PropA', 47);
- let prop1 = AppStorage.Prop('PropA');
- let prop2 = AppStorage.Prop('PropA');
- prop1.set(1); // one-way sync: prop1.get()=1; but prop2.get() == 47
static SetAndProp<S>(propName: string, defaultValue: S): SubscribedAbstractProperty<S>
與Prop接口類似。如果給定的propName在AppStorage存在,則返回該propName對應的屬性的單向綁定數(shù)據(jù)。如果不存在,則使用defaultValue在AppStorage創(chuàng)建和初始化propName對應的屬性,返回其單向綁定數(shù)據(jù)。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
defaultValue | S | 是 | 當propName在AppStorage中不存在時,使用default在AppStorage中初始化對應的propName。 |
返回值:
類型 | 描述 |
---|---|
SubscribedAbstractProperty<S> | SubscribedAbstractProperty<S>的實例。 |
- AppStorage.SetOrCreate('PropA', 47);
- let prop: SubscribedAbstractProperty<number> = AppStorage.SetAndProp('PropB', 49); // PropA -> 47, PropB -> 49
static Has(propName: string): boolean
判斷propName對應的屬性是否在AppStorage中存在。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果propName對應的屬性在AppStorage中存在,則返回true。不存在則返回false。 |
- AppStorage.Has('simpleProp');
static Get<T>(propName: string): T | undefined
獲取propName在AppStorage中對應的屬性。如果不存在返回undefined。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
T | undefined | AppStorage中propName對應的屬性,如果不存在返回undefined。 |
- AppStorage.SetOrCreate('PropA', 47);
- let value: number = AppStorage.Get('PropA'); // 47
static Set<T>(propName: string, newValue: T): boolean
在AppStorage中設置propName對應屬性的值。如果newValue的值和propName對應屬性的值相同,即不需要做賦值操作,狀態(tài)變量不會通知UI刷新propName對應屬性的值。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
newValue | T | 是 | 屬性值,不能為undefined或null。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果AppStorage不存在propName對應的屬性,或者設置的newValue是undefined或者null,返回false。設置成功則返回true。 |
- AppStorage.SetOrCreate('PropA', 48);
- let res: boolean = AppStorage.Set('PropA', 47) // true
- let res1: boolean = AppStorage.Set('PropB', 47) // false
static SetOrCreate<T>(propName: string, newValue: T): void
如果propName已經(jīng)在AppStorage中存在,并且newValue和propName對應屬性的值不同,則設置propName對應屬性的值為newValue,否則狀態(tài)變量不會通知UI刷新propName對應屬性的值。
如果propName不存在,則創(chuàng)建propName屬性,值為newValue。setOrCreate只可以創(chuàng)建單個AppStorage的鍵值對,如果想創(chuàng)建多個AppStorage鍵值對,可以多次調用此方法。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
newValue | T | 是 | 屬性值,不能為undefined或null。 |
- AppStorage.SetOrCreate('simpleProp', 121);
static Delete(propName: string): boolean
在AppStorage中刪除propName對應的屬性。
在AppStorage中刪除該屬性的前提是必須保證該屬性沒有訂閱者。如果有訂閱者,則返回false。刪除成功返回true。
屬性的訂閱者為Link、Prop等接口綁定的propName,以及@StorageLink('propName')和@StorageProp('propName')。這就意味著如果自定義組件中使用@StorageLink('propName')和@StorageProp('propName')或者SubscribedAbstractProperty實例依舊對propName有同步關系,則該屬性不能從AppStorage中刪除。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果AppStorage中有對應的屬性,且該屬性已經(jīng)沒有訂閱者,則刪除成功,返回true。如果屬性不存在,或者該屬性還存在訂閱者,則返回false。 |
- AppStorage.SetOrCreate('PropA', 47);
- AppStorage.Link('PropA');
- let res: boolean = AppStorage.Delete('PropA'); // false, PropA still has a subscriber
- AppStorage.SetOrCreate('PropB', 48);
- let res1: boolean = AppStorage.Delete('PropB'); // true, PropB is deleted from AppStorage successfully
static Keys(): IterableIterator<string>
返回AppStorage中所有的屬性名。
返回值:
類型 | 描述 |
---|---|
IterableIterator<string> | AppStorage中所有的屬性名。 |
- AppStorage.SetOrCreate('PropB', 48);
- let keys: IterableIterator<string> = AppStorage.Keys()
static staticClear(): boolean
刪除所有的屬性。
從API version 9開始廢棄,推薦使用Clear9+。
返回值:
類型 | 描述 |
---|---|
boolean | 刪除所有的屬性,如果當前有狀態(tài)變量依舊引用此屬性,返回false。 |
- let simple = AppStorage.staticClear();
static Clear(): boolean
清除AppStorage的所有的屬性。在AppStorage中清除所有屬性的前提是,已經(jīng)沒有任何訂閱者。如果有,則什么都不做返回false;刪除成功返回true。
訂閱者的含義和參考Delete。
返回值:
類型 | 描述 |
---|---|
boolean | 如果AppStorage中的屬性已經(jīng)沒有訂閱者,則清除成功,返回true。否則返回false。 |
- AppStorage.SetOrCreate('PropA', 47);
- let res: boolean = AppStorage.Clear(); // true, there are no subscribers
static IsMutable(propName: string): boolean
返回AppStorage中propName對應的屬性是否是可變的。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | AppStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
boolean | 返回AppStorage中propNam對應的屬性是否是可變的。 |
- AppStorage.SetOrCreate('PropA', 47);
- let res: boolean = AppStorage.IsMutable('simpleProp');
static Size(): number
返回AppStorage中的屬性數(shù)量。
返回值:
類型 | 描述 |
---|---|
number | 返回AppStorage中屬性的數(shù)量。 |
- AppStorage.SetOrCreate('PropB', 48);
- let res: number = AppStorage.Size(); // 1
constructor(initializingProperties?: Object)
創(chuàng)建一個新的LocalStorage實例。使用Object.keys(initializingProperties)返回的屬性和其數(shù)值,初始化LocalStorage實例。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
initializingProperties | Object | 否 | 用initializingProperties包含的屬性和數(shù)值初始化LocalStorage。initializingProperties不能為undefined。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
static GetShared(): LocalStorage
獲取當前stage共享的LocalStorage實例。使用案例可參考將LocalStorage實例從UIAbility共享到一個或多個視圖。
從API version 9開始,該接口支持在ArkTS卡片中使用。
模型約束:此接口僅可在Stage模型下使用。
返回值:
類型 | 描述 |
---|---|
返回LocalStorage實例。 |
- let storage: LocalStorage = LocalStorage.GetShared();
has(propName: string): boolean
判斷propName對應的屬性是否在LocalStorage中存在。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果propName對應的屬性在AppStorage中存在,則返回true。不存在則返回false。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- storage.has('PropA'); // true
get<T>(propName: string): T | undefined
獲取propName在LocalStorage中對應的屬性。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
T | undefined | LocalStorage中propName對應的屬性,如果不存在返回undefined。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let value: number = storage.get('PropA'); // 47
set<T>(propName: string, newValue: T): boolean
在LocalStorage中設置propName對應屬性的值。如果newValue的值和propName對應屬性的值相同,即不需要做賦值操作,狀態(tài)變量不會通知UI刷新propName對應屬性的值。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
newValue | T | 是 | 屬性值,不能為undefined或者null。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果LocalStorage不存在propName對應的屬性,或者設置的newValue是undefined或者null,返回false。設置成功返回true。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let res: boolean = storage.set('PropA', 47); // true
- let res1: boolean = storage.set('PropB', 47); // false
setOrCreate<T>(propName: string, newValue: T): boolean
如果propName已經(jīng)在LoStorage中存在,并且newValue和propName對應屬性的值不同,則設置propName對應屬性的值為newValue,否則狀態(tài)變量不會通知UI刷新propName對應屬性的值。
如果propName不存在,則創(chuàng)建propName屬性,值為newValue。setOrCreate只可以創(chuàng)建單個LocalStorage的鍵值對,如果想創(chuàng)建多個LocalStorage鍵值對,可以多次調用此方法。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
newValue | T | 是 | 屬性值,不能為undefined或者null。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果設置的newValue是undefined或者null,返回false。 如果LocalStorage存在propName,則更新其值為newValue,返回true。 如果LocalStorage不存在propName,則創(chuàng)建propName,并初始化其值為newValue,返回true。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let res: boolean =storage.setOrCreate('PropA', 121); // true
- let res1: boolean =storage.setOrCreate('PropB', 111); // true
- let res2: boolean =storage.setOrCreate('PropB', undefined); // false
link<T>(propName: string): SubscribedAbstractProperty<T>
如果給定的propName在LocalStorage實例中存在,則返回與LocalStorage中propName對應屬性的雙向綁定數(shù)據(jù)。
雙向綁定數(shù)據(jù)的修改會被同步回LocalStorage中,LocalStorage會將變化同步到所有綁定該propName的數(shù)據(jù)和Component中。
如果LocalStorage中不存在propName,則返回undefined。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
SubscribedAbstractProperty<T> | SubscribedAbstractProperty<T>的實例,如果AppStorage不存在對應的propName,再返回undefined。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let linkToPropA1: SubscribedAbstractProperty<number> = storage.link('PropA');
- let linkToPropA2: SubscribedAbstractProperty<number> = storage.link('PropA'); // linkToPropA2.get() == 47
- linkToPropA1.set(48); // 雙向同步: linkToPropA1.get() == linkToPropA2.get() == 48
setAndLink<T>(propName: string, defaultValue: T): SubscribedAbstractProperty<T>
與Link接口類似,如果給定的propName在LocalStorage存在,則返回該propName對應的屬性的雙向綁定數(shù)據(jù)。如果不存在,則使用defaultValue在LocalStorage創(chuàng)建和初始化propName,返回其雙向綁定數(shù)據(jù)。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
defaultValue | T | 是 | 當propName在LocalStorage中不存在,使用default在LocalStorage中初始化對應的propName。 |
返回值:
類型 | 描述 |
---|---|
SubscribedAbstractProperty<T> | SubscribedAbstractProperty<T>的實例,如果AppStorage不存在對應的propName,再返回undefined。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let link1: SubscribedAbstractProperty<number> = storage.setAndLink('PropB', 49); // Create PropB 49
- var link2: SubscribedAbstractProperty<number> = storage.setAndLink('PropA', 50); // PropA exists, remains 47
prop<S>(propName: string): SubscribedAbstractProperty<S>
如果給定的propName在LocalStorage存在,則返回與LocalStorage中propName對應屬性的單向綁定數(shù)據(jù)。如果LocalStorage中不存在propName,則返回undefined。單向綁定數(shù)據(jù)的修改不會被同步回LocalStorage中。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
SubscribedAbstractProperty<S> | SubscribedAbstractProperty<S>的實例,如果AppStorage不存在對應的propName,在返回undefined。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let prop1: SubscribedAbstractProperty<number> = storage.prop('PropA');
- let prop2: SubscribedAbstractProperty<number> = storage.prop('PropA');
- prop1.set(1); // one-way sync: prop1.get()=1; but prop2.get() == 47
setAndProp<S>(propName: string, defaultValue: S): SubscribedAbstractProperty<S>
propName在LocalStorage存在,則返回該propName對應的屬性的單向綁定數(shù)據(jù)。如果不存在,則使用defaultValue在LocalStorage創(chuàng)建和初始化propName對應的屬性,返回其單向綁定數(shù)據(jù)。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
defaultValue | S | 是 | 當propName在AppStorage中不存在,使用default在AppStorage中初始化對應的propName。 |
返回值:
類型 | 描述 |
---|---|
SubscribedAbstractProperty<S> | SubscribedAbstractProperty<S>的實例,和AppStorage中propName對應屬性的單向綁定的數(shù)據(jù)。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let prop: SubscribedAbstractProperty<number> = storage.setAndProp('PropB', 49); // PropA -> 47, PropB -> 49
delete(propName: string): boolean
在LocalStorage中刪除propName對應的屬性。刪除屬性的前提是該屬性已經(jīng)沒有訂閱者,如果有則返回false。刪除成功則返回true。
屬性的訂閱者是link,prop接口綁定的propName,以及@LocalStorageLink('propName')和@LocalStorageProp('propName')。如果自定義組件Component中使用或者SubscribedAbstractProperty(link和prop接口的返回類型)依舊有同步關系,則該屬性不能從LocalStorage中刪除。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
propName | string | 是 | LocalStorage中的屬性名。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果LocalStorage中有對應的屬性,且該屬性已經(jīng)沒有訂閱者,則刪除成功返回true。如果屬性不存在,或者該屬性還存在訂閱者,則返回false。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- storage.link('PropA');
- let res: boolean = storage.delete('PropA'); // false, PropA still has a subscriber
- let res1: boolean = storage.delete('PropB'); // false, PropB is not in storage
- storage.setOrCreate('PropB', 48);
- let res2: boolean = storage.delete('PropB'); // true, PropB is deleted from storage successfully
keys(): IterableIterator<string>
返回LocalStorage中所有的屬性名。
從API version 9開始,該接口支持在ArkTS卡片中使用。
返回值:
類型 | 描述 |
---|---|
IterableIterator<string> | LocalStorage中所有的屬性名。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let keys: IterableIterator<string> = storage.keys();
size(): number
返回LocalStorage中的屬性數(shù)量。
從API version 9開始,該接口支持在ArkTS卡片中使用。
返回值:
類型 | 描述 |
---|---|
number | 返回鍵值對的數(shù)量。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let res: number = storage.size(); // 1
清除LocalStorage的所有的屬性。在LocalStorage中清除所有屬性的前提是已經(jīng)沒有任何訂閱者。如果有則返回false;清除成功返回true。
從API version 9開始,該接口支持在ArkTS卡片中使用。
返回值:
類型 | 描述 |
---|---|
boolean | 如果LocalStorage中的屬性已經(jīng)沒有任何訂閱者,則清除成功,返回true。否則返回false。 |
- let storage: LocalStorage = new LocalStorage({ 'PropA': 47 });
- let res: boolean = storage.clear(); // true, there are no subscribers
abstract get(): T
讀取從AppStorage/LocalStorage同步屬性的數(shù)據(jù)。
從API version 9開始,該接口支持在ArkTS卡片中使用。
返回值:
類型 | 描述 |
---|---|
T | AppStorage/LocalStorage同步屬性的數(shù)據(jù)。 |
- AppStorage.SetOrCreate('PropA', 47);
- let prop1 = AppStorage.Prop('PropA');
- prop1.get(); // prop1.get()=47
設置AppStorage/LocalStorage同步屬性的數(shù)據(jù)。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
newValue | T | 是 | 要設置的數(shù)據(jù)。 |
- AppStorage.SetOrCreate('PropA', 47);
- let prop1 = AppStorage.Prop('PropA');
- prop1.set(1); // prop1.get()=1
static PersistProp<T>(key: string, defaultValue: T): void
將AppStorage中key對應的屬性持久化到文件中。該接口的調用通常在訪問AppStorage之前。
確定屬性的類型和值的順序如下:
根據(jù)上述的初始化流程,如果AppStorage中有該屬性,則會使用其值,覆蓋掉PersistentStorage文件中的值。由于AppStorage是內存內數(shù)據(jù),該行為會導致數(shù)據(jù)喪失持久化能力。示例請參考在PersistentStorage之前訪問AppStorage中的屬性。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
key | string | 是 | 屬性名。 |
defaultValue | T | 是 | 在PersistentStorage和AppStorage未查詢到時,則使用默認值初始化初始化它。不允許為undefined和null。 |
AppStorage的屬性向PersistentStorage中持久化的允許的類型是:
示例:
- PersistentStorage.PersistProp('highScore', '0');
static DeleteProp(key: string): void
PersistProp的逆向操作。將key對應的屬性從PersistentStorage刪除,后續(xù)AppStorage的操作,對PersistentStorage不會再有影響。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
key | string | 是 | PersistentStorage中的屬性名。 |
- PersistentStorage.DeleteProp('highScore');
static PersistProps(properties: {key: string, defaultValue: any;}[]): void
行為和PersistProp類似,不同在于可以一次性持久化多個數(shù)據(jù),適合在應用啟動的時候初始化。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
properties | {key: string, defaultValue: any}[] | 是 | 持久化數(shù)組,啟動key為屬性名,defaultValue為默認值。規(guī)則同PersistProp。 |
- PersistentStorage.PersistProps([{ key: 'highScore', defaultValue: '0' }, { key: 'wightScore', defaultValue: '1' }]);
static Keys(): Array<string>
返回所有持久化屬性的key的數(shù)組。
返回值:
類型 | 描述 |
---|---|
Array<string> | 返回所有持久化屬性的key的數(shù)組。 |
- let keys: Array<string> = PersistentStorage.Keys();
static EnvProp<S>(key: string, value: S): boolean
將Environment的內置環(huán)境變量key存入AppStorage中。如果系統(tǒng)中未查詢到Environment環(huán)境變量key的值,則使用默認值value,存入成功,返回true。如果AppStorage已經(jīng)有對應的key,則返回false。
所以建議在程序啟動的時候調用該接口。
在沒有調用EnvProp,就使用AppStorage讀取環(huán)境變量是錯誤的。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
key | string | 是 | 環(huán)境變量名稱,支持的范圍詳見內置環(huán)境變量說明。 |
value | S | 是 | 查詢不到環(huán)境變量key,則使用value作為默認值存入AppStorage中。 |
返回值:
類型 | 描述 |
---|---|
boolean | 如果key對應的屬性在AppStorage中存在,則返回false。不存在則在AppStorage中創(chuàng)建key對應的屬性,返回true。 |
示例:
- Environment.EnvProp('accessibilityEnabled', 'default');
key | 類型 | 說明 |
---|---|---|
accessibilityEnabled | string | 無障礙屏幕朗讀是否啟用。 |
colorMode | ColorMode | 深淺色模式,可選值為: - ColorMode.LIGHT:淺色模式; - ColorMode.DARK:深色模式。 |
fontScale | number | 字體大小比例。 |
fontWeightScale | number | 字重比例。 |
layoutDirection | LayoutDirection | 布局方向類型,可選值為: - LayoutDirection.LTR:從左到右; - LayoutDirection.RTL:從右到左。 |
languageCode | string | 當前系統(tǒng)語言,小寫字母,例如zh。 |
static EnvProps(props: {key: string; defaultValue: any;}[]): void
和EnvProp類似,不同點在于參數(shù)為數(shù)組,可以一次性初始化多個數(shù)據(jù)。建議在應用啟動時調用,將系統(tǒng)環(huán)境變量批量存入AppStorage中。
參數(shù):
參數(shù)名 | 類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
props | {key: string, defaultValue: any}[] | 是 | 系統(tǒng)環(huán)境變量和默認值的鍵值對的數(shù)組。 |
- Environment.EnvProps([{ key: 'accessibilityEnabled', defaultValue: 'default' }, { key: 'languageCode', defaultValue: 'en'}, { key: 'prop', defaultValue: 'hhhh' }]);
static Keys(): Array<string>
返回環(huán)境變量的屬性key的數(shù)組。
返回值:
類型 | 描述 |
---|---|
Array<string> | 返回關聯(lián)的系統(tǒng)項數(shù)組。 |
- Environment.EnvProps([{ key: 'accessibilityEnabled', defaultValue: 'default' }, { key: 'languageCode', defaultValue: 'en' }, { key: 'prop', defaultValue: 'hhhh' }]);
- let keys: Array<string> = Environment.Keys();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: