如何在开发 Chrome 运行期间将浏览器数据(cookie、本地存储)保留在 Flutter Web 中?

Ale*_*din 6 flutter-web

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

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

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

Abh*_*ran 5

您可以使用该--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),
        ),
      ),
    );
  }
}

Run Code Online (Sandbox Code Playgroud)

安卓工作室

在 android studio 中,您可以在运行配置中进行配置。 在此输入图像描述

在此输入图像描述