flutter - Flutter-web Webview使用多个LocalStorage管理
问题描述
您好,我在我的 Webapp 案例使用中使用 Webview 确实有问题:仪表板,它正在加载多个 Webview,其中每个 Webview 与每个本地存储都与主本地存储合并。
第一个问题: 我不得不使用 easywebview 包来解决我在 chrome 上加载 webview 的 webview 问题,但我想使用 webview 包。
第二个问题: 当我使用我的 chrome 应用程序并在其中加载一个 easywebview 时,我有两个独立运行的本地存储,我希望我可以将我所有的本地存储合并到仪表板一个中。
代码示例
import 'package:easy_web_view/easy_web_view.dart';
class LoginFrameWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
height: double.infinity,
width: double.infinity,
child: EasyWebView(
src: "http://localhost:5111/",
isHtml: false,
isMarkdown: false,
convertToWidgets: false,
onLoaded: () {},
));
}
}
本地存储的图像: 本地存储
需要的解决方案: 使用 webviews 而不是 easywebview(如果可能)制作一个主要的 LocalStorage
解决方案
经过一些研究,我最终得到了不同的解决方案:
//setup iframe
_iframeElement.height = '500';
_iframeElement.width = '500';
//listen to iframe (window.post.message)
window.onMessage.listen((event) {
print(event.data);
//some localstorage logic
});
_iframeElement.src = 'path';
_iframeElement.style.border = 'none';
// ignore: undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory(
'iframeElement',
(int viewId) => _iframeElement,
);
_iframeWidget = HtmlElementView(
key: UniqueKey(),
viewType: 'iframeElement',
);
如果有更好的解决方案,我会通过查询收集的数据而不是我会听的。
推荐阅读
- linear-programming - 如何避免时间表问题的调度冲突
- gitlab - 1个项目回购中多个应用程序文件夹的Gitlab CI
- database - 强制从节点标签 X 到节点标签 Y 的关系具有特定属性
- unity3d - Unity,视觉效果图 - 如何制作“尾随粒子”效果?
- rust - 当键不可克隆时,将满足谓词的单个条目移出 HashMap
- python - numpy零维数组到1d
- c - 如何计算钟摆的周期
- python-3.x - 如何解决:[reduce() 最多接受 5 个参数(给定 6 个)] 分块时出现此错误?
- sql-server - 我可以通过 BizTalk DRDA 服务从 Mainframe Cobol 程序访问 SQL Server 和 DB2 上的表吗?
- java - 如何让用户更改 JtextArea 的背景颜色