销毁后如何在 VS Code WebviewPanel 中保留状态?

How can I persist state in a VS Code WebviewPanel after it is destroyed?

查看 documentation 后,我可以在以下两种情况下保持状态:

  1. 当使用 getState/setState
  2. 隐藏 WebviewPanel 时(即用户切换标签)
  3. 当用户通过实现 WebviewPanelSerializer
  4. 重新启动 VS Code 时

但是,我没有看到在面板被销毁时保持状态的方法(即,用户关闭它或调用 dispose)。这是我的场景:

  1. 我执行命令显示 WebviewPanel
  2. 我在HTML内容中有一个输入框。我输入一些字符串并按下一个按钮来保存它。保存后,我使用 setState 保存它,然后将 div 和输入的文本附加到 webview 中。
  3. 我关闭面板并再次执行命令。该面板没有附加的 div.

您有 2 个选择:

  1. 当您找到已保存的状态(例如来自用户的输入)时,重新创建额外的 div。
  2. 使用retainContextWhenHidden保留webview的内容,即使它被移动到后台。

然而,当用户关闭 webview 时,后者将无济于事,并且比状态 save/restore 操作更耗费资源。