【问题标题】:How to keep browser data (cookies, local storage) in Flutter Web between development Chrome runs?如何在开发 Chrome 运行之间保留 Flutter Web 中的浏览器数据(cookie、本地存储)?
【发布时间】:2021-02-18 18:00:55
【问题描述】:

在 Flutter Web 中,当我在 IDE 中的 Chrome 中运行调试会话时,所有数据(cookie、本地存储等)在下一次运行时都会被清除。例如,如果我在我的网站上登录,我会在下一次运行时退出。

如何在运行之间保留浏览器数据?

PS:我读过一个类似的问题:Flutter web local storage,但它的作者对为什么不保留数据的解释感到满意。我想保留数据并对实现这一目标的方法感到好奇。在 Android 设备上(甚至在模拟器上),数据会被保留。我想在浏览器中实现同样的效果。

【问题讨论】:

    标签: flutter-web


    【解决方案1】:

    您可以使用--web-port 选项在启动时始终使用相同的端口。这将确保在多次运行调试会话之间保留本地存储。

    您可以如下所示运行以下应用示例,并在不同运行之间始终使用相同的端口。

    flutter run -d chrome --web-port=8080

    import 'package:flutter/material.dart';
    import 'dart:html';
    
    void main() {
      runApp(LocalStorageDemo());
    }
    
    class LocalStorageDemo extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        String message;
        if (window.localStorage.containsKey('my-key')) {
          message = 'from storage ${window.localStorage['my-key']}';
        } else {
          window.localStorage['my-key'] = "Hello World";
          message = 'New added Message ${window.localStorage['my-key']}';
        }
        return MaterialApp(
          home: Container(
            child: Center(
              child: Text(message),
            ),
          ),
        );
      }
    }
    
    

    Android 工作室

    在 android studio 中,您可以在运行配置中进行配置。

    【讨论】:

    • 感谢您的选择!你知道如何在 Android Studio 中做到这一点吗?
    • 更新了答案。请检查。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2014-12-26
    • 2021-12-02
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多