nativescript 中有 localstorage 吗?
Is there localstorage in nativescript?
如何在驻留在 application.Can 中的页面之间共享数据?有人讲过 nativescript 中的 localstorage 吗?
您可以与 global.foo 一起使用,它将对整个应用程序可用,或者您可以使用应用程序设置模块
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");
文档:
https://docs.nativescript.org/cookbook/application-settings
https://docs.nativescript.org/api-reference/modules/_application_settings_.html
编辑:打字错误不是全局而是全局:D
EDIT2:更改 applicationSettings 的函数名称和 link for docs
你的问题有多种解读方式,很难给你一个好的答案,但我会尽力的:
如果您想在导航时将数据从一个页面传递到另一个页面
创建带有上下文的导航条目
var navigationEntry = {
moduleName: "details-page",
context: {info: "something you want to pass to your page"},
animated: false
};
topmost.navigate(navigationEntry);
...在您要导航到的页面上,选择该上下文:
function onLoaded(args) {
console.log(args.object.navigationContext);
}
See documentation about Navigation
如果您想创建整个应用程序可用的数据
只需创建一个 singleton 并请求它,就像在任何其他 Javascript 应用程序中一样。
例如
文件:myData.js
var data = {
something: 'a value here',
somethingElse: 1
somethingMany: ['a', 'b', 'c']
};
exports.data = data;
在您想读取该数据的任何文件中:
var data = require("./myData.js").data;
console.log(data);
Read more about modules in Javascript
如果你想在本地设备上持久化数据
如果要写入和读取数据,以便在会话之间保存数据:
对于非复杂数据,使用application-settings
。例如
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
您还可以将文件写入设备,使用file-system
模块,例如
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.
});
阅读有关 file-system
的文档
对于数据库有一些模块可以使用,例如nativescript-sqlite and nativescript-couchbase
如果安装 "nativescript-localstorage" 插件,
tns plugin install nativescript-localstorage
然后您将可以像使用浏览器一样访问 SessionStorage 和 LocalStorage。
来自docs:
要设置一个值:
require( "nativescript-localstorage" );
localStorage.setItem('Another Plugin', 'By Master Technology');
localStorage.getItem('Another Plugin'); // Returns: "By Master Technology"
或
const LS = require( "nativescript-localstorage" );
LS.setItem('Another Plugin', 'By Master Technology');
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
免责声明我是上述 plugin.
的作者
用于添加 LocalStorage 和 SessionStorage 的 NativeScript 插件如果您尝试使用任何使用 localStorage/sessionStorage API 的库;或者你想要一个相当简单的存储引擎;在这里。
用法
要使用您刚刚 require()
的模块:
require( "nativescript-localstorage" );
或者您也可以在 app.module 或您的文件中导入 localstorage
模块。
import 'nativescript-localstorage';
然后在您的代码中使用 localStorage
变量,如下所示。
localStorage.setItem('Another Plugin', 'By Master Technology');
这将启用 localStorage api。那么你就可以像浏览器一样使用它了。
您还可以选择执行:
let LS = require( "nativescript-localstorage" );
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
如果您使用的是 NS8,请使用来自@nativescript/core
的“应用程序设置”
例如:
import * as appSettings from "@nativescript/core/application-settings";
...
appSettings.setString("token", response.token);
appSettings.setString("userId", response.user.id.toString());
appSettings.setString("email", email);
如何在驻留在 application.Can 中的页面之间共享数据?有人讲过 nativescript 中的 localstorage 吗?
您可以与 global.foo 一起使用,它将对整个应用程序可用,或者您可以使用应用程序设置模块
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");
文档:
https://docs.nativescript.org/cookbook/application-settings
https://docs.nativescript.org/api-reference/modules/_application_settings_.html
编辑:打字错误不是全局而是全局:D
EDIT2:更改 applicationSettings 的函数名称和 link for docs
你的问题有多种解读方式,很难给你一个好的答案,但我会尽力的:
如果您想在导航时将数据从一个页面传递到另一个页面
创建带有上下文的导航条目
var navigationEntry = {
moduleName: "details-page",
context: {info: "something you want to pass to your page"},
animated: false
};
topmost.navigate(navigationEntry);
...在您要导航到的页面上,选择该上下文:
function onLoaded(args) {
console.log(args.object.navigationContext);
}
See documentation about Navigation
如果您想创建整个应用程序可用的数据
只需创建一个 singleton 并请求它,就像在任何其他 Javascript 应用程序中一样。
例如
文件:myData.js
var data = {
something: 'a value here',
somethingElse: 1
somethingMany: ['a', 'b', 'c']
};
exports.data = data;
在您想读取该数据的任何文件中:
var data = require("./myData.js").data;
console.log(data);
Read more about modules in Javascript
如果你想在本地设备上持久化数据
如果要写入和读取数据,以便在会话之间保存数据:
对于非复杂数据,使用application-settings
。例如
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
您还可以将文件写入设备,使用file-system
模块,例如
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.
});
阅读有关 file-system
的文档对于数据库有一些模块可以使用,例如nativescript-sqlite and nativescript-couchbase
如果安装 "nativescript-localstorage" 插件,
tns plugin install nativescript-localstorage
然后您将可以像使用浏览器一样访问 SessionStorage 和 LocalStorage。
来自docs:
要设置一个值:
require( "nativescript-localstorage" );
localStorage.setItem('Another Plugin', 'By Master Technology');
localStorage.getItem('Another Plugin'); // Returns: "By Master Technology"
或
const LS = require( "nativescript-localstorage" );
LS.setItem('Another Plugin', 'By Master Technology');
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
免责声明我是上述 plugin.
的作者用于添加 LocalStorage 和 SessionStorage 的 NativeScript 插件如果您尝试使用任何使用 localStorage/sessionStorage API 的库;或者你想要一个相当简单的存储引擎;在这里。
用法
要使用您刚刚 require()
的模块:
require( "nativescript-localstorage" );
或者您也可以在 app.module 或您的文件中导入 localstorage
模块。
import 'nativescript-localstorage';
然后在您的代码中使用 localStorage
变量,如下所示。
localStorage.setItem('Another Plugin', 'By Master Technology');
这将启用 localStorage api。那么你就可以像浏览器一样使用它了。
您还可以选择执行:
let LS = require( "nativescript-localstorage" );
LS.getItem('Another Plugin'); // Returns: "By Master Technology"
如果您使用的是 NS8,请使用来自@nativescript/core
的“应用程序设置”例如:
import * as appSettings from "@nativescript/core/application-settings";
...
appSettings.setString("token", response.token);
appSettings.setString("userId", response.user.id.toString());
appSettings.setString("email", email);