How to keep data in a NativeScript application persistent. Can anyone tell about localStorage
in NativeScript
?
Edit: Was looking for localStorage
at the time.
How to keep data in a NativeScript application persistent. Can anyone tell about localStorage
in NativeScript
?
Edit: Was looking for localStorage
at the time.
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
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:
Create a Navigation Entry with a context
var navigationEntry = {
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:
function onLoaded(args) {
console.log(args.object.navigationContext);
}
See documentation about Navigation
Just create a singleton and request that, just as you would in any other Javascript app.
E.g.
file: myData.js
var data = {
something: 'a value here',
somethingElse: 1
somethingMany: ['a', 'b', 'c']
};
exports.data = data;
In any file where you want to read that data:
var data = require("./myData.js").data;
console.log(data);
Read more about modules in Javascript
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"); // Writing
var 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
shared preferences
on android. Any app with root level access can access this data. I haven't done much research about iOS. A lot of your users might use rooted phones and saving sensitive data like this is definitely a no brainer. Check out nativescript-securestorage though. That can be used to store sensitive data. –
Hypnotherapy 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
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
const LS = 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.
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:
let LS = require( "nativescript-localstorage" );
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
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);
© 2022 - 2024 — McMap. All rights reserved.