Files
reference/docs/tauri.html
2025-05-11 17:34:02 +00:00

502 lines
39 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" data-color-mode="dark">
<head>
<meta charset="utf-8">
<title>tauri 备忘清单
&#x26; tauri cheatsheet &#x26; Quick Reference</title>
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta description="tauri 备忘清单
===
这个 tauri 快速参考备忘单显示了它的常用命令使用清单
入门,为开发人员分享快速参考备忘单。">
<meta keywords="tauri,reference,Quick,Reference,cheatsheet,cheat,sheet">
<meta name="author" content="jaywcjlove">
<meta name="license" content="MIT">
<meta name="funding" content="https://jaywcjlove.github.io/#/sponsor">
<meta rel="apple-touch-icon" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="152x152" href="../icons/touch-icon-ipad.png">
<meta rel="apple-touch-icon" sizes="180x180" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="167x167" href="../icons/touch-icon-ipad-retina.png">
<meta rel="apple-touch-icon" sizes="120x120" href="../icons/touch-icon-iphone-retina.png">
<link rel="icon" href="../icons/favicon.svg" type="image/svg+xml">
<link href="../style/style.css" rel="stylesheet">
<link href="../style/katex.css" rel="stylesheet">
</head>
<body><nav class="header-nav"><div class="max-container"><a href="../index.html" class="logo"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
<path d="m21.66 10.44-.98 4.18c-.84 3.61-2.5 5.07-5.62 4.77-.5-.04-1.04-.13-1.62-.27l-1.68-.4c-4.17-.99-5.46-3.05-4.48-7.23l.98-4.19c.2-.85.44-1.59.74-2.2 1.17-2.42 3.16-3.07 6.5-2.28l1.67.39c4.19.98 5.47 3.05 4.49 7.23Z" fill="#c9d1d9"></path>
<path d="M15.06 19.39c-.62.42-1.4.77-2.35 1.08l-1.58.52c-3.97 1.28-6.06.21-7.35-3.76L2.5 13.28c-1.28-3.97-.22-6.07 3.75-7.35l1.58-.52c.41-.13.8-.24 1.17-.31-.3.61-.54 1.35-.74 2.2l-.98 4.19c-.98 4.18.31 6.24 4.48 7.23l1.68.4c.58.14 1.12.23 1.62.27Zm2.43-8.88c-.06 0-.12-.01-.19-.02l-4.85-1.23a.75.75 0 0 1 .37-1.45l4.85 1.23a.748.748 0 0 1-.18 1.47Z" fill="#228e6c"></path>
<path d="M14.56 13.89c-.06 0-.12-.01-.19-.02l-2.91-.74a.75.75 0 0 1 .37-1.45l2.91.74c.4.1.64.51.54.91-.08.34-.38.56-.72.56Z" fill="#228e6c"></path>
</svg>
<span class="title">Quick Reference</span></a><div class="menu"><a href="javascript:void(0);" class="searchbtn" id="searchbtn"><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><span>搜索</span><span>⌘K</span></a><a href="https://github.com/jaywcjlove/reference/blob/main/docs/tauri.md" class="edit" target="__blank"><svg viewBox="0 0 36 36" fill="currentColor" height="1em" width="1em"><path d="m33 6.4-3.7-3.7a1.71 1.71 0 0 0-2.36 0L23.65 6H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V11.76l3-3a1.67 1.67 0 0 0 0-2.36ZM18.83 20.13l-4.19.93 1-4.15 9.55-9.57 3.23 3.23ZM29.5 9.43 26.27 6.2l1.85-1.85 3.23 3.23Z"></path><path fill="none" d="M0 0h36v36H0z"></path></svg><span>编辑</span></a><button id="darkMode" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="light" height="1em" width="1em">
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM11 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2H2zm17 0h3v2h-3zM5.637 19.778l-1.414-1.414 2.121-2.121 1.414 1.414zM16.242 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.344 7.759 4.223 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="dark" height="1em" width="1em">
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"></path>
</svg>
</button><script src="../js/dark.js?v=1.8.3"></script><a href="https://github.com/jaywcjlove/reference" class="" target="__blank"><svg viewBox="0 0 16 16" fill="currentColor" height="1em" width="1em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a></div></div></nav><div class="wrap h1body-exist max-container"><header class="wrap-header h1wrap"><h1 id="tauri-备忘清单"><svg viewBox="0 0 256 289" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" height="1em" width="1em">
<path d="M178.497 104.93c0 15.155-12.285 27.44-27.44 27.44-15.153 0-27.438-12.285-27.438-27.44 0-15.153 12.285-27.438 27.439-27.438s27.439 12.285 27.439 27.439Z" fill="#FFC131"></path>
<circle fill="#24C8DB" transform="rotate(180 104.91 183.505)" cx="104.911" cy="183.505" r="27.439"></circle>
<path d="M207.93 192.86a104.766 104.766 0 0 1-36.168 14.717 73.586 73.586 0 0 0 3.617-33.176c29.953-10.472 49.82-38.964 49.292-70.69-.53-31.727-21.336-59.542-51.622-69.008-30.286-9.467-63.23 1.546-81.733 27.324a122.227 122.227 0 0 0-40.16 11.723C64.86 29.536 105.956-.445 152.244.005c46.288.45 86.794 31.224 99.636 75.697 12.841 44.473-5.026 92.103-43.95 117.157ZM52.404 92.832l25.693 3.118a73.586 73.586 0 0 1 3.243-14.593 104.766 104.766 0 0 0-28.936 11.475Z" fill="#FFC131"></path>
<path d="M47.913 95.577a104.766 104.766 0 0 1 36.419-14.842 73.46 73.46 0 0 0-4.116 33.3c-29.847 10.619-49.549 39.148-48.906 70.822.642 31.673 21.484 59.38 51.738 68.78 30.253 9.399 63.127-1.62 81.604-27.352a122.227 122.227 0 0 0 40.16-11.6c-13.736 44.169-54.812 74.1-101.064 73.645-46.252-.453-86.733-31.184-99.602-75.612-12.87-44.427 4.92-92.037 43.768-117.141Zm155.528 100.026-.5.25.5-.25Z" fill="#24C8DB"></path>
</svg>
<a aria-hidden="true" tabindex="-1" href="#tauri-备忘清单"><span class="icon icon-link"></span></a>tauri 备忘清单</h1><div class="wrap-body">
<p>这个 <a href="https://tauri.app/">tauri</a> 快速参考备忘单显示了它的常用命令使用清单</p>
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#快速开始">快速开始</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#依赖环境">依赖环境</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#启动-tauri-开发窗口">启动 Tauri 开发窗口</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#检测最新版本的-tauri">检测最新版本的 Tauri</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更新-npm-包">更新 npm 包</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更新-cargo-包">更新 Cargo 包</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#应用程序调试">应用程序调试</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#以编程方式打开-devtools">以编程方式打开 Devtools</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#在生产中使用检查器">在生产中使用检查器</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#启用开发工具功能">启用开发工具功能</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#安卓开发">安卓开发</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#环境变量">环境变量</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#准备目标">准备目标</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#编译">编译</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#签名">签名</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#配置">配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#配置结构">配置结构</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#tauri-配置">Tauri 配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#cliconfig">CliConfig</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#package-配置">Package 配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#windowconfig">WindowConfig</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#patternkind">PatternKind</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#棕地模式">棕地模式</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#隔离模式建议出于安全目的">隔离模式。建议出于安全目的</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#windowurl">WindowUrl</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#systemtrayconfig">SystemTrayConfig</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-exist row-span-3"><div class="wrap-header h3wrap"><h3 id="快速开始"><a aria-hidden="true" tabindex="-1" href="#快速开始"><span class="icon icon-link"></span></a>快速开始</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-3-->
<p>Bash</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">sh</span> <span class="token operator">&#x3C;</span><span class="token punctuation">(</span><span class="token function">curl</span> https://create.tauri.app/sh<span class="token punctuation">)</span>
</span></code></pre>
<p>PowerShell</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">C:<span class="token punctuation">\</span><span class="token operator">></span> irm https://create.tauri.app/ps <span class="token operator">|</span> iex
</span></code></pre>
<p>Cargo</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">cargo</span> <span class="token function">install</span> create-tauri-app <span class="token parameter variable">--locked</span>
</span><span class="code-line">$ <span class="token function">cargo</span> create-tauri-app
</span></code></pre>
<p>npm/yarn/pnpm/bunx</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> create tauri-app@latest
</span><span class="code-line">$ <span class="token function">yarn</span> create tauri-app
</span><span class="code-line">$ <span class="token function">pnpm</span> create tauri-app
</span><span class="code-line">$ bunx create-tauri-app
</span></code></pre>
<h4 id="依赖环境"><a aria-hidden="true" tabindex="-1" href="#依赖环境"><span class="icon icon-link"></span></a>依赖环境</h4>
<table><thead><tr><th align="left">软件</th><th align="left">描述</th></tr></thead><tbody><tr><td align="left"><a href="https://www.rust-lang.org/tools/install">rust</a></td><td align="left">rust安装</td></tr><tr><td align="left"><a href="https://nodejs.org/en">nodejs</a></td><td align="left">nodejs安装</td></tr><tr><td align="left"><a href="https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/">Windows Build Tools</a></td><td align="left">Microsoft C++ 生成工具 (for windows)</td></tr><tr><td align="left"><a href="https://developer.android.google.cn/studio?hl=zh-cn">Android Studio</a></td><td align="left">安卓开发工具</td></tr></tbody></table>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="启动-tauri-开发窗口"><a aria-hidden="true" tabindex="-1" href="#启动-tauri-开发窗口"><span class="icon icon-link"></span></a>启动 Tauri 开发窗口</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> run tauri dev
</span><span class="code-line">$ <span class="token function">yarn</span> tauri dev
</span><span class="code-line">$ <span class="token function">pnpm</span> tauri dev
</span><span class="code-line">$ bunx tauri dev
</span><span class="code-line">$ <span class="token function">cargo</span> tauri dev
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="检测最新版本的-tauri"><a aria-hidden="true" tabindex="-1" href="#检测最新版本的-tauri"><span class="icon icon-link"></span></a>检测最新版本的 Tauri</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> outdated @tauri-apps/cli
</span><span class="code-line">$ <span class="token function">yarn</span> outdated @tauri-apps/cli
</span><span class="code-line">$ <span class="token function">pnpm</span> <span class="token function">add</span> <span class="token parameter variable">-D</span> @tauri-apps/cli
</span><span class="code-line">$ <span class="token function">npm</span> outdated @tauri-apps/cli
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="更新-npm-包"><a aria-hidden="true" tabindex="-1" href="#更新-npm-包"><span class="icon icon-link"></span></a>更新 npm 包</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> <span class="token function">install</span> @tauri-apps/cli@latest @tauri-apps/api@latest
</span><span class="code-line">$ <span class="token function">yarn</span> upgrade @tauri-apps/cli @tauri-apps/api <span class="token parameter variable">--latest</span>
</span><span class="code-line">$ <span class="token function">yarn</span> up @tauri-apps/cli @tauri-apps/api
</span><span class="code-line">$ <span class="token function">pnpm</span> update @tauri-apps/cli @tauri-apps/api <span class="token parameter variable">--latest</span>
</span><span class="code-line">$ bun update @tauri-apps/cli @tauri-apps/api
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="更新-cargo-包"><a aria-hidden="true" tabindex="-1" href="#更新-cargo-包"><span class="icon icon-link"></span></a>更新 Cargo 包</h3><div class="wrap-body">
<p>打开 <code>src-tauri/Cargo.toml</code> 并更改 <code>tauri</code><code>tauri-build</code></p>
<pre class="language-ini"><code class="language-ini code-highlight"><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">build-dependencies</span><span class="token punctuation">]</span></span>
</span><span class="code-line"><span class="token key attr-name">tauri-build</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">%version%</span>"</span>
</span><span class="code-line">
</span><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">dependencies</span><span class="token punctuation">]</span></span>
</span><span class="code-line"><span class="token key attr-name">tauri</span> <span class="token punctuation">=</span> <span class="token value attr-value">{ version = "%version%" }</span>
</span></code></pre>
<p>其中 <code>%version%</code> 是上面相应的版本号</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">cd</span> src-tauri
</span><span class="code-line">$ <span class="token function">cargo</span> update
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="应用程序调试"><a aria-hidden="true" tabindex="-1" href="#应用程序调试"><span class="icon icon-link"></span></a>应用程序调试</h3><div class="wrap-body">
<p>代码中输出日志方法</p>
<pre class="language-rust"><code class="language-rust code-highlight"><span class="code-line"><span class="token macro property">println!</span><span class="token punctuation">(</span><span class="token string">"Message from Rust: {}"</span><span class="token punctuation">,</span> msg<span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
<p>在 Linux 和 macOS 上通过下面命令重新运行</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">RUST_BACKTRACE</span><span class="token operator">=</span><span class="token number">1</span> tauri dev
</span></code></pre>
<p>Window 上这样开启</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">set</span> <span class="token assign-left variable">RUST_BACKTRACE</span><span class="token operator">=</span><span class="token number">1</span>
</span><span class="code-line">tauri dev
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="以编程方式打开-devtools"><a aria-hidden="true" tabindex="-1" href="#以编程方式打开-devtools"><span class="icon icon-link"></span></a>以编程方式打开 Devtools</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-rust"><code class="language-rust code-highlight"><span class="code-line"><span class="token keyword">use</span> <span class="token namespace">tauri<span class="token punctuation">::</span></span><span class="token class-name">Manager</span><span class="token punctuation">;</span>
</span><span class="code-line"><span class="token namespace">tauri<span class="token punctuation">::</span></span><span class="token class-name">Builder</span><span class="token punctuation">::</span><span class="token function">default</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">setup</span><span class="token punctuation">(</span><span class="token closure-params"><span class="token closure-punctuation punctuation">|</span>app<span class="token closure-punctuation punctuation">|</span></span> <span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token attribute attr-name">#[cfg(debug_assertions)]</span> <span class="token comment">// 仅在调试构建时包含此代码</span>
</span><span class="code-line"> <span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token keyword">let</span> window <span class="token operator">=</span> app<span class="token punctuation">.</span><span class="token function">get_window</span><span class="token punctuation">(</span><span class="token string">"main"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">unwrap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span><span class="code-line"> window<span class="token punctuation">.</span><span class="token function">open_devtools</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span><span class="code-line"> window<span class="token punctuation">.</span><span class="token function">close_devtools</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span><span class="code-line"> <span class="token punctuation">}</span>
</span><span class="code-line"> <span class="token class-name">Ok</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="在生产中使用检查器"><a aria-hidden="true" tabindex="-1" href="#在生产中使用检查器"><span class="icon icon-link"></span></a>在生产中使用检查器</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> run tauri build -- <span class="token parameter variable">--debug</span>
</span><span class="code-line">$ <span class="token function">yarn</span> tauri build <span class="token parameter variable">--debug</span>
</span><span class="code-line">$ <span class="token function">pnpm</span> tauri build <span class="token parameter variable">--debug</span>
</span><span class="code-line">$ bunx tauri build <span class="token parameter variable">--debug</span>
</span><span class="code-line">$ <span class="token function">cargo</span> tauri build <span class="token parameter variable">--debug</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="启用开发工具功能"><a aria-hidden="true" tabindex="-1" href="#启用开发工具功能"><span class="icon icon-link"></span></a>启用开发工具功能</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-ini"><code class="language-ini code-highlight"><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">dependencies</span><span class="token punctuation">]</span></span>
</span><span class="code-line"><span class="token key attr-name">tauri</span> <span class="token punctuation">=</span> <span class="token value attr-value">{ version = "...", features = ["...", "devtools"] }</span>
</span></code></pre>
<p>在文件 <code>src-tauri/Cargo.toml</code> 中启用 <code>devtools Cargo</code> 功能</p>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="安卓开发"><a aria-hidden="true" tabindex="-1" href="#安卓开发"><span class="icon icon-link"></span></a>安卓开发</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="环境变量"><a aria-hidden="true" tabindex="-1" href="#环境变量"><span class="icon icon-link"></span></a>环境变量</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<p><code>JAVA_HOME</code></p>
<p><code>ANDROID_HOME</code></p>
<p><code>NDK_HOME</code></p>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="准备目标"><a aria-hidden="true" tabindex="-1" href="#准备目标"><span class="icon icon-link"></span></a>准备目标</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> <span class="token function">install</span> @tauri-apps/cli@next @tauri-apps/api@next
</span><span class="code-line">$ <span class="token function">npm</span> run tauri migrate
</span><span class="code-line">$ rustup target <span class="token function">add</span> aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
</span><span class="code-line">$ <span class="token function">rm</span> <span class="token parameter variable">-r</span> src-tauri/gen
</span><span class="code-line">$ <span class="token function">npm</span> run tauri android init
</span><span class="code-line">$ <span class="token function">npm</span> run tauri icon
</span></code></pre>
<p>修改应用名:%app_path%\src-tauri\gen\android\app\src\main\res\values\strings.xml</p>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="编译"><a aria-hidden="true" tabindex="-1" href="#编译"><span class="icon icon-link"></span></a>编译</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">npm</span> run tauri android dev
</span><span class="code-line">$ <span class="token function">npm</span> run tauri android build
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="签名"><a aria-hidden="true" tabindex="-1" href="#签名"><span class="icon icon-link"></span></a>签名</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ keytool <span class="token parameter variable">-genkey</span> <span class="token parameter variable">-alias</span> android.keystore <span class="token parameter variable">-keyalg</span> RSA <span class="token parameter variable">-validity</span> <span class="token number">20000</span> <span class="token parameter variable">-keystore</span> android.keystore
</span><span class="code-line">$ zipalign <span class="token parameter variable">-p</span> <span class="token parameter variable">-f</span> <span class="token parameter variable">-v</span> <span class="token number">4</span> unsigned.apk release.apk
</span><span class="code-line">$ apksigner sign <span class="token parameter variable">--ks</span> android.keystore release.apk
</span></code></pre>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="配置"><a aria-hidden="true" tabindex="-1" href="#配置"><span class="icon icon-link"></span></a>配置</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="配置结构"><a aria-hidden="true" tabindex="-1" href="#配置结构"><span class="icon icon-link"></span></a>配置结构</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<p>默认配置 <code>tauri.conf.json</code>,还支持 <code>tauri.conf.json5</code><code>Tauri.toml</code></p>
<table><thead><tr><th align="left">--</th><th>--</th></tr></thead><tbody><tr><td align="left"><code>package</code></td><td>包设置</td></tr><tr><td align="left"><code>tauri</code></td><td>Tauri 配置</td></tr><tr><td align="left"><code>build</code></td><td>构建配置</td></tr><tr><td align="left"><code>plugins</code></td><td>插件配置</td></tr></tbody></table>
<p>下面配置能与主配置进行合并</p>
<ul>
<li><code>tauri.linux.conf.json</code><code>Tauri.linux.conf.toml</code></li>
<li><code>tauri.windows.conf.json</code><code>Tauri.windows.conf.toml</code></li>
<li><code>tauri.macos.conf.json</code><code>Tauri.macos.conf.toml</code></li>
</ul>
<p>示例</p>
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token property">"build"</span><span class="token operator">:</span> <span class="token punctuation">{</span> ... <span class="token punctuation">}</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token property">"package"</span><span class="token operator">:</span> <span class="token punctuation">{</span> ... <span class="token punctuation">}</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token property">"tauri"</span><span class="token operator">:</span> <span class="token punctuation">{</span> ... <span class="token punctuation">}</span>
</span><span class="code-line"><span class="token punctuation">}</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="tauri-配置"><a aria-hidden="true" tabindex="-1" href="#tauri-配置"><span class="icon icon-link"></span></a>Tauri 配置</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<table class="left-align"><thead><tr><th align="left">配置</th><th>Type</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>pattern</code></td><td><a href="#patternkind">PatternKind</a></td><td>应用程序名称</td></tr><tr><td align="left"><code>version</code></td><td><a href="#windowconfig">WindowConfig[]</a></td><td>应用程序版本</td></tr><tr><td align="left"><code>cli</code></td><td><a href="#cliconfig">CliConfig</a></td><td>CLI 配置</td></tr><tr><td align="left"><code>bundle</code></td><td>BundleConfig</td><td>打包器配置</td></tr><tr><td align="left"><code>allowlist</code></td><td>AllowlistConfig</td><td>允许列表配置</td></tr><tr><td align="left"><code>security</code></td><td>SecurityConfig</td><td>安全配置</td></tr><tr><td align="left"><code>updater</code></td><td>UpdaterConfig</td><td>更新程序配置</td></tr><tr><td align="left"><code>systemTray</code></td><td><a href="#systemtrayconfig">SystemTrayConfig</a></td><td>配置应用系统托盘</td></tr><tr><td align="left"><code>macOSPrivateApi</code></td><td>boolean</td><td>macOS 私有API配置</td></tr></tbody></table>
<!--rehype:className=left-align-->
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="cliconfig"><a aria-hidden="true" tabindex="-1" href="#cliconfig"><span class="icon icon-link"></span></a>CliConfig</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<table class="left-align"><thead><tr><th align="left">配置</th><th>Type</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>description</code></td><td>string?</td><td>将显示在帮助信息中</td></tr><tr><td align="left"><code>longDescription</code></td><td>string?</td><td>将显示在帮助信息中</td></tr><tr><td align="left"><code>beforeHelp</code></td><td>string?</td><td>该信息显示在自动生成的帮助信息之前。这通常用于标题信息</td></tr><tr><td align="left"><code>afterHelp</code></td><td>string?</td><td>显示在自动生成的帮助信息之后。通常用于描述如何使用参数,或者需要注意的注意事项</td></tr><tr><td align="left"><code>args</code></td><td>array?</td><td>命令的参数列表</td></tr><tr><td align="left"><code>subcommands</code></td><td>object?</td><td>该命令的子命令列表</td></tr></tbody></table>
<!--rehype:className=left-align-->
<p>描述 CLI 配置</p>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="package-配置"><a aria-hidden="true" tabindex="-1" href="#package-配置"><span class="icon icon-link"></span></a>Package 配置</h3><div class="wrap-body">
<table><thead><tr><th align="left">配置</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>productName</code></td><td>应用程序名称</td></tr><tr><td align="left"><code>version</code></td><td>应用程序版本</td></tr></tbody></table>
</div></div></div><div class="wrap h3body-not-exist col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="windowconfig"><a aria-hidden="true" tabindex="-1" href="#windowconfig"><span class="icon icon-link"></span></a>WindowConfig</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2 row-span-2-->
<p>窗口配置对象</p>
<table><thead><tr><th align="left">配置</th><th>Type</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>label</code></td><td>string</td><td>null</td><td>窗口标识符</td></tr><tr><td align="left"><code>url</code></td><td><a href="#windowurl">WindowUrl</a></td><td>view</td><td>窗口的 webview URL</td></tr><tr><td align="left"><code>userAgent</code></td><td>userAgent?</td><td>null</td><td>webview 的用户代理</td></tr><tr><td align="left"><code>fileDropEnabled</code></td><td>boolean</td><td>true</td><td>是否在 Web 视图上启用文件放置</td></tr><tr><td align="left"><code>center</code></td><td>boolean</td><td>false</td><td>窗口是否开始居中</td></tr><tr><td align="left"><code>x</code></td><td>number?</td><td>null</td><td>窗口左上角的水平位置</td></tr><tr><td align="left"><code>y</code></td><td>number?</td><td>null</td><td>窗口左上角的水平位置</td></tr><tr><td align="left"><code>width</code></td><td>number</td><td>800</td><td>窗口宽度</td></tr><tr><td align="left"><code>height</code></td><td>number</td><td>600</td><td>窗口高度</td></tr><tr><td align="left"><code>minWidth</code></td><td>number</td><td>null</td><td>最小窗口宽度</td></tr><tr><td align="left"><code>minHeight</code></td><td>number</td><td>null</td><td>最小窗口高度</td></tr></tbody></table>
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="patternkind"><a aria-hidden="true" tabindex="-1" href="#patternkind"><span class="icon icon-link"></span></a>PatternKind</h3><div class="wrap-body">
<p>应用模式。可以是以下类型中的任意一种:</p>
<h4 id="棕地模式"><a aria-hidden="true" tabindex="-1" href="#棕地模式"><span class="icon icon-link"></span></a>棕地模式</h4>
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span> <span class="token property">"use"</span><span class="token operator">:</span> <span class="token string">"brownfield"</span> <span class="token punctuation">}</span>
</span></code></pre>
<h4 id="隔离模式建议出于安全目的"><a aria-hidden="true" tabindex="-1" href="#隔离模式建议出于安全目的"><span class="icon icon-link"></span></a>隔离模式。建议出于安全目的</h4>
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token property">"use"</span><span class="token operator">:</span> <span class="token string">"isolation"</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token property">"options"</span><span class="token operator">:</span> <span class="token punctuation">{</span> <span class="token property">"dir"</span><span class="token operator">:</span> string <span class="token punctuation">}</span>
</span><span class="code-line"><span class="token punctuation">}</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="windowurl"><a aria-hidden="true" tabindex="-1" href="#windowurl"><span class="icon icon-link"></span></a>WindowUrl</h3><div class="wrap-body">
<p>要在 Tauri Web 视图窗口中打开的 URL。可以是以下任何一种类型</p>
<ul>
<li><code>string</code> (format: <code>uri</code>):外部 URL。</li>
<li><code>string</code>:应用程序 URL 的路径部分。例如,要加载 <code>tauri://localhost/users/john</code>,只需在此配置中提供 <code>users/john</code></li>
</ul>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="systemtrayconfig"><a aria-hidden="true" tabindex="-1" href="#systemtrayconfig"><span class="icon icon-link"></span></a>SystemTrayConfig</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<table class="left-align"><thead><tr><th align="left">配置</th><th>Type</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>iconPath</code></td><td>string(必填)</td><td>null</td><td>系统托盘上使用的默认图标的路径</td></tr><tr><td align="left"><code>iconAsTemplate</code></td><td>boolean</td><td>false</td><td>用于确定图像是否代表 macOS 上的<a href="https://developer.apple.com/documentation/appkit/nsimage/1520017-template?language=objc">模板</a>图像</td></tr><tr><td align="left"><code>menuOnLeftClick</code></td><td>boolean</td><td>true</td><td>确定在 macOS 上托盘图标收到左键点击时菜单是否应该出现</td></tr><tr><td align="left"><code>title</code></td><td>string?</td><td>null</td><td>MacOS 托盘标题</td></tr></tbody></table>
<!--rehype:className=left-align-->
<p>应用程序系统托盘图标的配置</p>
</div></div></div></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&#x26;A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.8.3" defer></script><script src="../js/fuse.min.js?v=1.8.3" defer></script><script src="../js/main.js?v=1.8.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
</html>