Is There Localstorage In Nativescript?
Solution 1:
Your question can be read in a variety of ways, making it a bit hard to give you a good answer but I'll try:
If you want to pass data from one page to another on navigation
Create a Navigation Entry with a context
varnavigationEntry= {
moduleName:"details-page",
context: {info:"something you want to pass to your page"},
animated:false
};topmost.navigate(navigationEntry);
... and on the page you're navigating to, pick up that context:
functiononLoaded(args) {
console.log(args.object.navigationContext);
}
See documentation about Navigation
If you want to create data available throughout the app
Just create a singleton and request that, just as you would in any other Javascript app.
E.g.
file: myData.js
vardata = {
something: 'a value here',
somethingElse: 1
somethingMany: ['a', 'b', 'c']
};
exports.data = data;
In any file where you want to read that data:
vardata = require("./myData.js").data;
console.log(data);
Read more about modules in Javascript
If you want to persist data on the local device
If you want to write and read data, so that you can save it between sessions:
For non-complex data, use application-settings
. E.g.
var appSettings = require("application-settings");
appSettings.setString("stringKey", "String value"); // Writingvar value = appSettings.getString("stringKey", "No string value"); // Reading// will return "No string value" if there is no value for "stringKey"console.log(value)
Read the docs about application-settings
You can also write a file to the device, with the file-system
module, e.g.
var documents = fs.knownFolders.documents();
var path = fs.path.join(documents.path, "FileFromPath.txt");
var file = fs.File.fromPath(path);
// Writing text to the file.
file.writeText("Something")
.then(function () {
// Succeeded writing to the file.
}, function (error) {
// Failed to write to the file.
});
Read the docs about file-system
For databases there are modules you can use, such as the nativescript-sqlite and nativescript-couchbase
Solution 2:
You can use either with global.foo, it will available for whole app or you can use application-settings module
var applicationSettings = require("application-settings");
//set somewhere like this
applicationSettings.set<Number|String|Boolean>("sharedVar",1);
//get sharedVar somewhere
applicationSettings.get<Number|String|Boolean>("sharedVar");//if empty it will be null//or if u want default value if sharedVar wasn't defined//and if sharedVar was defined then u will get content of sharedVar
applicationSettings.get<Number|String|Boolean>("sharedVar","Default Value");
DOCS:
https://docs.nativescript.org/cookbook/application-settings
https://docs.nativescript.org/api-reference/modules/_application_settings_.html
EDIT: had typo not globals but global :D
EDIT2: change names of function from applicationSettings and link for docs
Solution 3:
If you install the "nativescript-localstorage" plugin,
tns plugin install nativescript-localstorage
You will then have access to both SessionStorage and LocalStorage just as if you were using a browser.
From the docs:
To set a value:
require( "nativescript-localstorage" );
localStorage.setItem('Another Plugin', 'By Master Technology');
localStorage.getItem('Another Plugin'); // Returns: "By Master Technology"
or
constLS = require( "nativescript-localstorage" );
LS.setItem('Another Plugin', 'By Master Technology');
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
Disclaimer I'm the author of said plugin.
Solution 4:
A NativeScript plugin to add LocalStorage and SessionStorage If you are trying to use any libraries that use the localStorage/sessionStorage API; or you want a fairly simple storage engine; here it is.
check nativescript-localstorage module
Usage
To use the module you just require()
it:
require( "nativescript-localstorage" );
or you can also import localstorage
module on your app.module or your file.
import'nativescript-localstorage';
and then use localStorage
variable on your code like below.
localStorage.setItem('Another Plugin', 'By Master Technology');
This will enable the localStorage api. So then you can use it just like a browser.
You can also optionally do:
letLS = require( "nativescript-localstorage" );
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
Solution 5:
If you are using NS8, use "application-settings" from @nativescript/core
For example:
import * as appSettings from"@nativescript/core/application-settings";
...
appSettings.setString("token", response.token);
appSettings.setString("userId", response.user.id.toString());
appSettings.setString("email", email);
Post a Comment for "Is There Localstorage In Nativescript?"