Storage
iOS, Android, Electron, PWA
The Storage API provides a key-value store for simple data.
Mobile OS's may periodically clear data set in window.localStorage, so this API should be used instead of window.localStorage. This API will fall back to using localStorage when running as a Progressive Web App.
Note: this API is not meant for high-performance data storage applications. Take a look at using SQLite, Realm or a separate data engine if your application will store a lot of items, have high read/write load, or require complex querying.
Working with JSON
Storage works on Strings only. However, storing JSON blobs is easy: just JSON.stringify the object before calling set, then JSON.parse the value returned from get. See the example below for more details.
This method can also be used to store non-string values, such as numbers and booleans.
Methods
Example
// Store some data var data = new DataClass { data = "Some Data For Testing" }; StorageBridge.Set("data", data); StorageBridge.Set("string", "a string"); StorageBridge.Set("object", new { type = "object", model = "anonymous", arr = new [] { "an", "array" } }); StorageBridge.Set("number", 123); // Read data var d = await StorageBridge.Get<DataClass>("data"); Console.WriteLine($"data: {d}.data={d.data}"); var s = await StorageBridge.Get<string>("string"); Console.WriteLine($"string: {s}"); var o = await StorageBridge.Get<object>("object"); Console.WriteLine($"object: {o}"); var n = await StorageBridge.Get<long>("number"); Console.WriteLine($"number: {n}"); // Remove entry from storage StorageBridge.Remove("object"); // Retrieve available keys var keys = await StorageBridge.Keys(); keys.ToList().ForEach(Console.WriteLine); // Clear all data StorageBridge.Clear();
API
Clear
Clear stored keys and values.
static Task Clear()
Get
Get the value with the given key.
static Task<T> Get<T>(string key)
Set
Set the value for the given key
static Task Set<T>(string key, T value)
Keys
Return the list of known keys
static Task<string[]> Keys()
Remove
Remove the value for this key (if any)
static Task Remove(string key)