nativescript - изменить переменную на exitEvent - PullRequest
0 голосов
/ 23 февраля 2019

Мне нужно иметь возможность изменить значение некоторой переменной, когда приложение закрыто.Я использую exitEvent, описанное здесь: https://docs.nativescript.org/core-concepts/application-lifecycle

Кроме того, я использую плагин локального хранилища, который работает аналогично локальному хранилищу javasctip.https://github.com/NathanaelA/nativescript-localstorage

Мой простой код выглядит следующим образом:

var Observable = require("data/observable").Observable;
require("nativescript-dom");
var LS = require("nativescript-localstorage");
const application = require("tns-core-modules/application");
var page = require("ui/page");

exports.load = function (args) {

var page = args.object;
var model = new Observable();
var frame = require('ui/frame');
var ff = frame.getFrameById("dashboard");
var topmost = frame.topmost();

// This is exit event
application.on(application.exitEvent, (args) => {
    LS.setItem('XX','111')
});


// What i will exit app, and run app again this will newer become 111,
it's null all the time
console.log(LS.getItem('XX'));
}

Итак, мой вопрос - можно установить любой флаг при выходе из приложения - это не обязательно должно быть localalstorage (яя проверил глобальные переменные в), чтобы определить, был ли выполнен выход, и на основании этого я могу принять решение, которое мне поможет?

Один из сценариев может быть - я держу в Localstorage какой-то флаг, которыйЭто TURE пользователь нажал «запомнить меня» на экране входа в систему.Таким образом, при выходе я могу проверить, если он хочет, чтобы его запомнили, если нет, я хочу отправить пользователя на страницу входа, а не на панель инструментов, когда приложение запускается ....

Спасибо.

РЕДАКТИРОВАТЬ: Я тоже пробовал приложения-настройки, не получится.

application.on(application.exitEvent, (args) => {
    applicationSettings.setString("Name", "John Doe");
});


console.log(applicationSettings.getString("Name")); // not working

1 Ответ

0 голосов
/ 23 февраля 2019

Я подозреваю, что это проблема с плагином nativescript-localstorage.Он записывает изменения в файл после задержки 250 мс .На выходном событии вы дадите вам очень ограниченное количество времени, прежде чем ваше приложение будет полностью убито системой.

Возможно, у автора была причина для установки этой задержки, но я думаю, что слишком много времени, по крайней мере, в этом конкретном сценарии, поэтому изменения никогда не записываются в файл.Вы можете поднять проблему в репозитории Github плагина.

Если вы ищете немедленное решение, скопируйте localstorage.js в свое приложение и экспортируйте internalSaveData из файла, чтобы вы могли сразу вызвать его сразу послеВы заканчиваете установку своих значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...