アプリケーションにあるページ間でデータを共有する方法。nativescriptのローカルストレージについて誰か教えてもらえますか?
Global.fooで使用するか、アプリ全体で使用するか、application-settingsモジュールを使用できます。
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
[〜#〜]編集[〜#〜]:グローバルではなくグローバル:Dのタイプミスがありました
EDIT2:applicationSettingsから関数の名前を変更し、ドキュメントへのリンク
あなたの質問はさまざまな方法で読むことができるので、良い答えを出すのは少し難しいですが、私は試してみます:
コンテキストを使用してナビゲーションエントリを作成する
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);
}
他のJavascriptアプリの場合と同じように、 singleton を作成してリクエストするだけです。
例えば。
ファイル: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);
データの書き込みと読み取りを行い、セッション間でデータを保存できるようにする場合:
複雑でないデータの場合、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)
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 や 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"
免責事項私は言われた プラグイン の作者です。
LocalStorageとSessionStorageを追加するためのNativeScriptプラグインlocalStorage/sessionStorageAPIを使用するライブラリを使用しようとしている場合。または、かなり単純なストレージエンジンが必要です。ここにあります。
チェック nativescript-localstorage モジュール
使用法
モジュールを使用するには、require()
it:
require( "nativescript-localstorage" );
または、app.moduleまたはファイルにlocalstorage
モジュールをインポートすることもできます。
import 'nativescript-localstorage';
次に、以下のようにコードでlocalStorage
変数を使用します。
localStorage.setItem('Another Plugin', 'By Master Technology');
これにより、localStorageAPIが有効になります。したがって、ブラウザのように使用できます。
オプションで次のこともできます:
let LS = require( "nativescript-localstorage" );
LS.getItem('Another Plugin'); // Returns: "By Master Technology"