You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vscode-api-cn.js/interfaces/vscode.WebviewPanelSerializ...

323 lines
17 KiB

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>WebviewPanelSerializer | VS Code API 中文文档</title>
<meta name="description" content="VS Code API 是一系列你可以在 Visual Studio Code 扩展中调用的 JavaScript API。这个站点列出了扩展开发者可以使用的所有 vscode api 中文文档。">
<meta property="og:site_name" content="Vscode Api 中文文档">
<meta property="og:type" content="docs">
<meta property="og:url" content="https://vscode-api-cn.js.org/index.html">
<meta property="article:tag" content="vscode">
<meta property="article:tag" content="vscode api">
<meta property="article:tag" content="vscode api 中文文档">
<meta property="article:tag" content="vscode api 文档">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="https://code.visualstudio.com/favicon.ico" sizes="128x128">
<link rel="stylesheet" href="../assets/css/main.css">
<script async src="../assets/js/search.js" id="search-script"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7962287588031867" crossorigin="anonymous"></script>
<meta name="monetag" content="eb1e3d5247d1754d0fd449f7b99b110d">
<script type="text/javascript">
(function (c, l, a, r, i, t, y) {
c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) };
t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i;
y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "g1cbw4nxoq");
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-T4TRRS1LB1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-T4TRRS1LB1');
</script>
<style>
.github-corner svg {
z-index: 1;
}
.github-corner:hover .octo-arm {
animation:octocat-wave 560ms ease-in-out
}
@keyframes octocat-wave {
0%,100%{transform:rotate(0)}
20%,60%{transform:rotate(-25deg)}
40%,80%{transform:rotate(10deg)}
}
@media (max-width:500px) {
.github-corner:hover
.octo-arm{animation:none}
.github-corner .octo-arm{
animation:octocat-wave 560ms ease-in-out
}
}
.container-main {
padding-bottom: 50px;
}
</style>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">VS Code API 中文文档</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../modules.html">VS Code API 中文文档</a>
</li>
<li>
<a href="../modules/vscode.html">vscode</a>
</li>
<li>
<a href="vscode.WebviewPanelSerializer.html">WebviewPanelSerializer</a>
</li>
</ul>
<h1>Interface WebviewPanelSerializer&lt;T&gt;</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Restore webview panels that have been persisted when vscode shuts down.</p>
</div>
<p>There are two types of webview persistence:</p>
<ul>
<li>Persistence within a session.</li>
<li>Persistence across sessions (across restarts of the editor).</li>
</ul>
<p>A <code>WebviewPanelSerializer</code> is only required for the second case: persisting a webview across sessions.</p>
<p>Persistence within a session allows a webview to save its state when it becomes hidden
and restore its content from this state when it becomes visible again. It is powered entirely
by the webview content itself. To save off a persisted state, call <code>acquireVsCodeApi().setState()</code> with
any json serializable object. To restore the state again, call <code>getState()</code></p>
<pre><code class="language-js"><span style="color: #008000">// Within the webview</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">vscode</span><span style="color: #000000"> = </span><span style="color: #795E26">acquireVsCodeApi</span><span style="color: #000000">();</span>
<span style="color: #008000">// Get existing state</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">oldState</span><span style="color: #000000"> = </span><span style="color: #001080">vscode</span><span style="color: #000000">.</span><span style="color: #795E26">getState</span><span style="color: #000000">() || { </span><span style="color: #001080">value:</span><span style="color: #000000"> </span><span style="color: #098658">0</span><span style="color: #000000"> };</span>
<span style="color: #008000">// Update state</span>
<span style="color: #795E26">setState</span><span style="color: #000000">({ </span><span style="color: #001080">value:</span><span style="color: #000000"> </span><span style="color: #001080">oldState</span><span style="color: #000000">.</span><span style="color: #001080">value</span><span style="color: #000000"> + </span><span style="color: #098658">1</span><span style="color: #000000"> })</span>
</code></pre>
<p>A <code>WebviewPanelSerializer</code> extends this persistence across restarts of the editor. When the editor is shutdown,
it will save off the state from <code>setState</code> of all webviews that have a serializer. When the
webview first becomes visible after the restart, this state is passed to <code>deserializeWebviewPanel</code>.
The extension can then restore the old <code>WebviewPanel</code> from this state.</p>
</div>
</section>
<section class="tsd-panel tsd-type-parameters">
<h3>Type parameters</h3>
<ul class="tsd-type-parameters">
<li>
<h4>T = <span class="tsd-signature-type">unknown</span></h4>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Type of the webview&#39;s state.</p>
</div>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>层级</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">WebviewPanelSerializer</span>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>索引</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods1</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="vscode.WebviewPanelSerializer.html#deserializeWebviewPanel" class="tsd-kind-icon">deserialize<wbr>Webview<wbr>Panel</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods1</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="deserializeWebviewPanel" class="tsd-anchor"></a>
<h3>deserialize<wbr>Webview<wbr>Panel</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">deserialize<wbr>Webview<wbr>Panel<span class="tsd-signature-symbol">(</span>webviewPanel<span class="tsd-signature-symbol">: </span><a href="vscode.WebviewPanel.html" class="tsd-signature-type" data-tsd-kind="Interface">WebviewPanel</a>, state<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Thenable.html" class="tsd-signature-type" data-tsd-kind="Interface">Thenable</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/youngjuning/vscode-api-cn/blob/6b21e9a/vscode.d.ts#L7684">vscode.d.ts:7684</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Restore a webview panel from its serialized <code>state</code>.</p>
</div>
<p>Called when a serialized webview first becomes visible.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>webviewPanel: <a href="vscode.WebviewPanel.html" class="tsd-signature-type" data-tsd-kind="Interface">WebviewPanel</a></h5>
<div class="tsd-comment tsd-typography">
<p>Webview panel to restore. The serializer should take ownership of this panel. The
serializer must restore the webview&#39;s <code>.html</code> and hook up all webview events.</p>
</div>
</li>
<li>
<h5>state: <span class="tsd-signature-type">T</span></h5>
<div class="tsd-comment tsd-typography">
<p>Persisted state from the webview content.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="Thenable.html" class="tsd-signature-type" data-tsd-kind="Interface">Thenable</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>Thenable indicating that the webview has been fully restored.</p>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="../modules.html">Exports</a>
</li>
<li class="current tsd-kind-namespace">
<a href="../modules/vscode.html">vscode</a>
<ul>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.authentication.html">authentication</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.commands.html">commands</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.comments.html">comments</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.debug.html">debug</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.env.html">env</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.extensions.html">extensions</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.languages.html">languages</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.notebooks.html">notebooks</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.scm.html">scm</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.tasks.html">tasks</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.tests.html">tests</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.window.html">window</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.workspace.html">workspace</a>
</li>
</ul>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<div style="width: 200px">
<script type="text/javascript" id="clstr_globe" src="//clustrmaps.com/globe.js?d=cMnk-gSDNcAzNMMm67U8rWRaHnjUc0Xb0giSGndepK4"></script>
</div>
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface tsd-parent-kind-namespace tsd-has-type-parameter">
<a href="vscode.WebviewPanelSerializer.html" class="tsd-kind-icon">Webview<wbr>Panel<wbr>Serializer</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="vscode.WebviewPanelSerializer.html#deserializeWebviewPanel" class="tsd-kind-icon">deserialize<wbr>Webview<wbr>Panel</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>图例</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p><a href="https://liiked.github.io/VS-Code-Extension-Doc-ZH/" target="_blank">VS Code 插件开发中文文档</a> | <a href="https://jeasonstudio.gitbooks.io/vscode-cn-doc/content/" target="_blank">VS Code 中文文档</a> | <a href="https://code.visualstudio.com/docs" target="_blank">VS Code 官网文档</a> | <a href="https://marketplace.visualstudio.com/" target="_blank">VS Code 扩展市场</a></p>
<p>Generated by <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<a href="https://github.com/youngjuning/vscode-api-cn" target="_blank" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: fixed; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
<script src="https://glimtors.net/pfe/current/tag.min.js?z=5772059" data-cfasync="false" async></script>
<script>(function (d, z, s) { s.src = 'https://' + d + '/400/' + z; try { (document.body || document.documentElement).appendChild(s) } catch (e) { } })('offfurreton.com', 5772070, document.createElement('script'))</script>
<script>(function (d, z, s) { s.src = 'https://' + d + '/401/' + z; try { (document.body || document.documentElement).appendChild(s) } catch (e) { } })('glizauvo.net', 5773412, document.createElement('script'))</script>
</body>
</html>