在 Flutter Web 中,当我从 IDE 在 Chrome 中运行调试会话时,所有数据(cookie、本地存储等)都会在下次运行时被清除。例如,如果我登录我的网站,我会在下次运行时注销。
如何在运行之间保留浏览器数据?
PS:我读过类似的问题:Flutter Web本地存储,但其作者对为什么不保留数据的解释感到满意。我想保留数据并对实现这一目标的方法感到好奇。在 Android 设备上(甚至在模拟器上),数据会被保留。我想在浏览器中实现同样的效果。
您可以使用该--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 中,您可以在运行配置中进行配置。

| 归档时间: |
|
| 查看次数: |
3026 次 |
| 最近记录: |