销毁后如何在 VS Code WebviewPanel 中保留状态?
How can I persist state in a VS Code WebviewPanel after it is destroyed?
查看 documentation 后,我可以在以下两种情况下保持状态:
- 当使用
getState
/setState
隐藏 WebviewPanel
时(即用户切换标签)
- 当用户通过实现
WebviewPanelSerializer
重新启动 VS Code 时
但是,我没有看到在面板被销毁时保持状态的方法(即,用户关闭它或调用 dispose
)。这是我的场景:
- 我执行命令显示
WebviewPanel
- 我在HTML内容中有一个输入框。我输入一些字符串并按下一个按钮来保存它。保存后,我使用
setState
保存它,然后将 div
和输入的文本附加到 webview 中。
- 我关闭面板并再次执行命令。该面板没有附加的
div
.
您有 2 个选择:
- 当您找到已保存的状态(例如来自用户的输入)时,重新创建额外的 div。
- 使用
retainContextWhenHidden
保留webview的内容,即使它被移动到后台。
然而,当用户关闭 webview 时,后者将无济于事,并且比状态 save/restore 操作更耗费资源。
查看 documentation 后,我可以在以下两种情况下保持状态:
- 当使用
getState
/setState
隐藏 - 当用户通过实现
WebviewPanelSerializer
重新启动 VS Code 时
WebviewPanel
时(即用户切换标签)
但是,我没有看到在面板被销毁时保持状态的方法(即,用户关闭它或调用 dispose
)。这是我的场景:
- 我执行命令显示
WebviewPanel
- 我在HTML内容中有一个输入框。我输入一些字符串并按下一个按钮来保存它。保存后,我使用
setState
保存它,然后将div
和输入的文本附加到 webview 中。 - 我关闭面板并再次执行命令。该面板没有附加的
div
.
您有 2 个选择:
- 当您找到已保存的状态(例如来自用户的输入)时,重新创建额外的 div。
- 使用
retainContextWhenHidden
保留webview的内容,即使它被移动到后台。
然而,当用户关闭 webview 时,后者将无济于事,并且比状态 save/restore 操作更耗费资源。