Флаттер сохраняет время для переменной, когда пользователь обращается к вкладке - PullRequest
0 голосов
/ 16 января 2020

Я новичок в трепетании, поэтому, пожалуйста, потерпите меня. Итак, у меня есть простое приложение для веб-просмотра с 2 вкладками

Я просто хочу спросить, как я могу сохранить время загрузки пользователя для имени переменной lastloaded в формате времени , когда пользователь -входя на эту вкладку, функция проверит переменную lastloaded, если она больше 1 минуты, и выполнит refre sh.

Я, честно говоря, не знаю, что искать для этой проблемы. Пожалуйста помогите. Спасибо!

, если вы хотите увидеть пример кода здесь:

class _CategoriesPageState extends State<CategoriesPage> {
    WebViewController _myController;
      final Completer<WebViewController> _controller =
      Completer<WebViewController>();
  @override
  Widget build(BuildContext context) {
    return SafeArea(
          child: Scaffold(
            body: WebView(
              initialUrl: 'www.facebook.com',
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (controller) {
              _controller.complete(controller);
          },
          onPageFinished: (controller) async {
            (await _controller.future).evaluateJavascript("document.getElementsByClassName('footer-container')[0].style.display='none';");
            (await _controller.future).evaluateJavascript("document.getElementById('st_notification_1').style.display='none';");
            (await _controller.future).evaluateJavascript("document.getElementById('sidebar_box').style.display='none';");

          },
        ),
          floatingActionButton: FutureBuilder<WebViewController>(
              future: _controller.future,
              builder: (BuildContext context, AsyncSnapshot<WebViewController> controller) {
                if (controller.hasData) {
                  return FloatingActionButton(
                  onPressed: () {
                    controller.data.reload();
                  },
                  child: Icon(Icons.refresh),
                );
                }
                return Container();
          }
        ),
      ),
    );
  }
}

1 Ответ

1 голос
/ 16 января 2020

Для получения даты и времени, пользователь DateTime класс. Используйте этот класс и используйте функцию difference, чтобы получить разницу между DateTimes.

var lastLoaded; 
void tappingOnTab(){
   final now = DateTime.now();
   if(lastLoaded != null){
        if(now.difference(lastLoaded).inMinutes > 1){
              // yes last loaded time is more than 1 min ago
        } 
   }
   lastLoaded = now;

}

Если вы хотите сохранить время последней загрузки в нескольких экземплярах приложения, используйте SharedPreferences: https://pub.dev/packages/shared_preferences.

...