This commit is contained in:
fofolee 2020-06-06 13:37:47 +08:00
parent 580d9cdba9
commit b99d9f37ab
5 changed files with 72 additions and 72 deletions

View File

@ -1,32 +1,32 @@
<h1 id="utools-api"><a href="#utools-api" aria-hidden="true" class="header-anchor">#</a> uTools API</h1> <p>在插件初始化完成时uTools会自动在你的window对象上挂载utools对象它将提供一些特有的api使你的插件能够更好的与uTools主窗口沟通并获得一些有意义的底层能力。</p> <h2 id="事件"><a href="#事件" aria-hidden="true" class="header-anchor">#</a> 事件</h2> <p>你可以根据需要事先定义好一些回调函数uTools会在事件产生时主动调用它们。</p> <h3 id="onpluginready-callback"><a href="#onpluginready-callback" aria-hidden="true" class="header-anchor">#</a> <code>onPluginReady(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>当插件装载成功uTools将会主动调用这个方法生命周期内仅调用一次</p></blockquote> <h4 id="示例"><a href="#示例" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginReady</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<h1 id="utools-api"> uTools API</h1> <p>在插件初始化完成时uTools会自动在你的window对象上挂载utools对象它将提供一些特有的api使你的插件能够更好的与uTools主窗口沟通并获得一些有意义的底层能力。</p> <h2 id="事件"> 事件</h2> <p>你可以根据需要事先定义好一些回调函数uTools会在事件产生时主动调用它们。</p> <h3 id="onpluginready-callback"> <code>onPluginReady(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>当插件装载成功uTools将会主动调用这个方法生命周期内仅调用一次</p></blockquote> <h4 id="示例"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginReady</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'插件装配完成,已准备好'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="onpluginenter-callback"><a href="#onpluginenter-callback" aria-hidden="true" class="header-anchor">#</a> <code>onPluginEnter(callback)</code></h3> <ul><li><code>callback</code> Function
<ul><li><code>Object</code> <ul><li><p><code>code</code> String</p> <blockquote><p>plugin.json 配置的 feature.code</p></blockquote></li> <li><p><code>type</code> String</p> <blockquote><p>plugin.json 配置的 feature.cmd.code</p></blockquote></li> <li><p><code>payload</code> String | Object | Array</p> <blockquote><p>feature.cmd.type 对应匹配的数据</p></blockquote></li> <li><p><code>optional</code> Array | undefined</p> <blockquote><p>存在多个匹配时的可选匹配类型和数据 [{ type, payload }]</p></blockquote></li></ul></li></ul></li></ul> <blockquote><p>每当插件从后台进入到前台时uTools将会主动调用这个方法。</p></blockquote> <h4 id="示例-2"><a href="#示例-2" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginEnter</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">{</span>code<span class="token punctuation">,</span> type<span class="token punctuation">,</span> payload<span class="token punctuation">,</span> optional<span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="onpluginenter-callback"> <code>onPluginEnter(callback)</code></h3> <ul><li><code>callback</code> Function
<ul><li><code>Object</code> <ul><li><p><code>code</code> String</p> <blockquote><p>plugin.json 配置的 feature.code</p></blockquote></li> <li><p><code>type</code> String</p> <blockquote><p>plugin.json 配置的 feature.cmd.code</p></blockquote></li> <li><p><code>payload</code> String | Object | Array</p> <blockquote><p>feature.cmd.type 对应匹配的数据</p></blockquote></li> <li><p><code>optional</code> Array | undefined</p> <blockquote><p>存在多个匹配时的可选匹配类型和数据 [{ type, payload }]</p></blockquote></li></ul></li></ul></li></ul> <blockquote><p>每当插件从后台进入到前台时uTools将会主动调用这个方法。</p></blockquote> <h4 id="示例-2"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginEnter</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">{</span>code<span class="token punctuation">,</span> type<span class="token punctuation">,</span> payload<span class="token punctuation">,</span> optional<span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'用户进入插件'</span><span class="token punctuation">,</span> code<span class="token punctuation">,</span> type<span class="token punctuation">,</span> payload<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="onpluginout-callback"><a href="#onpluginout-callback" aria-hidden="true" class="header-anchor">#</a> <code>onPluginOut(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>每当插件从前台进入到后台时uTools将会主动调用这个方法。</p></blockquote> <h4 id="示例-3"><a href="#示例-3" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginOut</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="onpluginout-callback"> <code>onPluginOut(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>每当插件从前台进入到后台时uTools将会主动调用这个方法。</p></blockquote> <h4 id="示例-3"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginOut</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'用户退出插件'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="onplugindetach-callback"><a href="#onplugindetach-callback" aria-hidden="true" class="header-anchor">#</a> <code>onPluginDetach(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>用户对插件进行分离操作时uTools将会主动调用这个方法。</p></blockquote> <h4 id="示例-4"><a href="#示例-4" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginDetach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="onplugindetach-callback"> <code>onPluginDetach(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>用户对插件进行分离操作时uTools将会主动调用这个方法。</p></blockquote> <h4 id="示例-4"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onPluginDetach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'插件被分离'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="ondbpull-callback"><a href="#ondbpull-callback" aria-hidden="true" class="header-anchor">#</a> <code>onDbPull(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>当此插件的数据在其他设备上被更改后同步到此设备时uTools将会主动调用这个方法</p></blockquote> <h4 id="示例-5"><a href="#示例-5" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onDbPull</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="ondbpull-callback"> <code>onDbPull(callback)</code></h3> <ul><li><code>callback</code> Function</li></ul> <blockquote><p>当此插件的数据在其他设备上被更改后同步到此设备时uTools将会主动调用这个方法</p></blockquote> <h4 id="示例-5"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">onDbPull</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'onDbPull'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="窗口交互"><a href="#窗口交互" aria-hidden="true" class="header-anchor">#</a> 窗口交互</h2> <h3 id="hidemainwindow-isrestoreprewindow"><a href="#hidemainwindow-isrestoreprewindow" aria-hidden="true" class="header-anchor">#</a> <code>hideMainWindow(isRestorePreWindow)</code></h3> <ul><li><p><code>isRestorePreWindow</code> Boolean</p> <blockquote><p>是否焦点回归到前面的活动窗口,默认 true</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>执行该方法将会隐藏uTools主窗口包括此时正在主窗口运行的插件分离的插件不会被隐藏。</p></blockquote> <h4 id="示例-6"><a href="#示例-6" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">hideMainWindow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="showmainwindow"><a href="#showmainwindow" aria-hidden="true" class="header-anchor">#</a> <code>showMainWindow()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>执行该方法将会显示uTools主窗口包括此时正在主窗口运行的插件。</p></blockquote> <h4 id="示例-7"><a href="#示例-7" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showMainWindow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setexpendheight-height"><a href="#setexpendheight-height" aria-hidden="true" class="header-anchor">#</a> <code>setExpendHeight(height)</code></h3> <ul><li><code>height</code> Integer</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>执行该方法将会修改插件窗口的高度。</p></blockquote> <h4 id="示例-8"><a href="#示例-8" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setExpendHeight</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setsubinput-onchange-placeholder-isfocus"><a href="#setsubinput-onchange-placeholder-isfocus" aria-hidden="true" class="header-anchor">#</a> <code>setSubInput(onChange, placeholder, isFocus)</code></h3> <ul><li><p><code>onChange</code> Function</p> <ul><li><code>Object</code> <ul><li><code>text</code> String</li></ul></li></ul> <blockquote><p>子输入框文本修改时触发</p></blockquote></li> <li><p><code>placeholder</code> String (可选)</p> <blockquote><p>子输入框占位符</p></blockquote></li> <li><p><code>isFocus</code> Boolean (可选)</p> <blockquote><p>子输入框是否获得焦点,默认 true</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>设置子输入框进入插件后原本uTools的搜索条主输入框将会变成子输入框子输入框可以为插件所使用。</p></blockquote> <p><img src="/docs/assets/img/main.735fcf36.png" alt="main.png"></p><p align="center">主输入框</p> <img src="/docs/assets/img/subInput.6bbd15ea.png" alt="main.png"> <p align="center">子输入框</p><p></p> <h4 id="示例-9"><a href="#示例-9" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setSubInput</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">{</span> text <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
</code></pre></div><h2 id="窗口交互"> 窗口交互</h2> <h3 id="hidemainwindow-isrestoreprewindow"> <code>hideMainWindow(isRestorePreWindow)</code></h3> <ul><li><p><code>isRestorePreWindow</code> Boolean</p> <blockquote><p>是否焦点回归到前面的活动窗口,默认 true</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>执行该方法将会隐藏uTools主窗口包括此时正在主窗口运行的插件分离的插件不会被隐藏。</p></blockquote> <h4 id="示例-6"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">hideMainWindow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="showmainwindow"> <code>showMainWindow()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>执行该方法将会显示uTools主窗口包括此时正在主窗口运行的插件。</p></blockquote> <h4 id="示例-7"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showMainWindow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setexpendheight-height"> <code>setExpendHeight(height)</code></h3> <ul><li><code>height</code> Integer</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>执行该方法将会修改插件窗口的高度。</p></blockquote> <h4 id="示例-8"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setExpendHeight</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setsubinput-onchange-placeholder-isfocus"> <code>setSubInput(onChange, placeholder, isFocus)</code></h3> <ul><li><p><code>onChange</code> Function</p> <ul><li><code>Object</code> <ul><li><code>text</code> String</li></ul></li></ul> <blockquote><p>子输入框文本修改时触发</p></blockquote></li> <li><p><code>placeholder</code> String (可选)</p> <blockquote><p>子输入框占位符</p></blockquote></li> <li><p><code>isFocus</code> Boolean (可选)</p> <blockquote><p>子输入框是否获得焦点,默认 true</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>设置子输入框进入插件后原本uTools的搜索条主输入框将会变成子输入框子输入框可以为插件所使用。</p></blockquote> <p><img src="/docs/assets/img/main.735fcf36.png" alt="main.png"></p><p align="center">主输入框</p> <img src="/docs/assets/img/subInput.6bbd15ea.png" alt="main.png"> <p align="center">子输入框</p><p></p> <h4 id="示例-9"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setSubInput</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">{</span> text <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'搜索'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="removesubinput"><a href="#removesubinput" aria-hidden="true" class="header-anchor">#</a> <code>removeSubInput()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>移出先前设置的子输入框,在插件切换到其他页面时可以重新设置子输入框为其所用。</p></blockquote> <h4 id="示例-10"><a href="#示例-10" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">removeSubInput</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setsubinputvalue-value"><a href="#setsubinputvalue-value" aria-hidden="true" class="header-anchor">#</a> <code>setSubInputValue(value)</code></h3> <ul><li><code>value</code> String</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>直接对子输入框的值进行设置。</p></blockquote> <h4 id="示例-11"><a href="#示例-11" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setSubInputValue</span><span class="token punctuation">(</span><span class="token string">'uTools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="subinputfocus"><a href="#subinputfocus" aria-hidden="true" class="header-anchor">#</a> <code>subInputFocus()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>子输入框获得焦点</p></blockquote> <h4 id="示例-12"><a href="#示例-12" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">subInputFocus</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="subinputselect"><a href="#subinputselect" aria-hidden="true" class="header-anchor">#</a> <code>subInputSelect()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>子输入框获得焦点并选中</p></blockquote> <h4 id="示例-13"><a href="#示例-13" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">subInputSelect</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="subinputblur"><a href="#subinputblur" aria-hidden="true" class="header-anchor">#</a> <code>subInputBlur()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>子输入框失去焦点,插件获得焦点</p></blockquote> <h4 id="示例-14"><a href="#示例-14" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">subInputBlur</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="outplugin"><a href="#outplugin" aria-hidden="true" class="header-anchor">#</a> <code>outPlugin()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>执行该方法将会退出当前插件。</p></blockquote> <h4 id="示例-15"><a href="#示例-15" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">outPlugin</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="redirect-label-payload"><a href="#redirect-label-payload" aria-hidden="true" class="header-anchor">#</a> <code>redirect(label, payload)</code></h3> <ul><li><p><code>label</code> String</p> <blockquote><p>feature.cmd.label 名称</p></blockquote></li> <li><p><code>payload</code> String | Object</p> <blockquote><p>feature.cmd.type 对应的数据</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>该方法可以携带数据跳转到另一个插件进行处理如果用户未安装对应的插件uTools会弹出提醒并引导进入插件中心下载。</p></blockquote> <h4 id="示例-16"><a href="#示例-16" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">//content 为string类型</span>
</code></pre></div><h3 id="removesubinput"> <code>removeSubInput()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>移出先前设置的子输入框,在插件切换到其他页面时可以重新设置子输入框为其所用。</p></blockquote> <h4 id="示例-10"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">removeSubInput</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setsubinputvalue-value"> <code>setSubInputValue(value)</code></h3> <ul><li><code>value</code> String</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>直接对子输入框的值进行设置。</p></blockquote> <h4 id="示例-11"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setSubInputValue</span><span class="token punctuation">(</span><span class="token string">'uTools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="subinputfocus"> <code>subInputFocus()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>子输入框获得焦点</p></blockquote> <h4 id="示例-12"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">subInputFocus</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="subinputselect"> <code>subInputSelect()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>子输入框获得焦点并选中</p></blockquote> <h4 id="示例-13"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">subInputSelect</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="subinputblur"> <code>subInputBlur()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>子输入框失去焦点,插件获得焦点</p></blockquote> <h4 id="示例-14"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">subInputBlur</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="outplugin"> <code>outPlugin()</code></h3> <ul><li><code>返回</code> Boolean</li></ul> <blockquote><p>执行该方法将会退出当前插件。</p></blockquote> <h4 id="示例-15"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">outPlugin</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="redirect-label-payload"> <code>redirect(label, payload)</code></h3> <ul><li><p><code>label</code> String</p> <blockquote><p>feature.cmd.label 名称</p></blockquote></li> <li><p><code>payload</code> String | Object</p> <blockquote><p>feature.cmd.type 对应的数据</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>该方法可以携带数据跳转到另一个插件进行处理如果用户未安装对应的插件uTools会弹出提醒并引导进入插件中心下载。</p></blockquote> <h4 id="示例-16"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">//content 为string类型</span>
utools<span class="token punctuation">.</span><span class="token function">redirect</span><span class="token punctuation">(</span><span class="token string">'翻译'</span><span class="token punctuation">,</span> <span class="token string">'hello world'</span><span class="token punctuation">)</span>
<span class="token comment">//content 为object类型</span>
@ -49,35 +49,35 @@
<span class="token string">'data'</span><span class="token punctuation">:</span> <span class="token string">'/path/to/img.jpg'</span> <span class="token comment">//filePath、array</span>
<span class="token comment">//'data': ['path1', 'path2'] //支持数组</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="showopendialog-options"><a href="#showopendialog-options" aria-hidden="true" class="header-anchor">#</a> <code>showOpenDialog(options)</code></h3> <ul><li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/dialog#dialogshowopendialogsyncbrowserwindow-options" target="_blank" rel="noopener noreferrer">Electron API dialog.showOpenDialogSync<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li> <li><p><code>返回</code> Array | undefined</p> <blockquote><p>返回选择的文件数组,用户取消返回 undefined</p></blockquote></li></ul> <blockquote><p>弹出文件选择框</p></blockquote> <h4 id="示例-17"><a href="#示例-17" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showOpenDialog</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
</code></pre></div><h3 id="showopendialog-options"> <code>showOpenDialog(options)</code></h3> <ul><li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/dialog#dialogshowopendialogsyncbrowserwindow-options" target="_blank" rel="noopener noreferrer">Electron API dialog.showOpenDialogSync<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li> <li><p><code>返回</code> Array | undefined</p> <blockquote><p>返回选择的文件数组,用户取消返回 undefined</p></blockquote></li></ul> <blockquote><p>弹出文件选择框</p></blockquote> <h4 id="示例-17"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showOpenDialog</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
filters<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> <span class="token string">'name'</span><span class="token punctuation">:</span> <span class="token string">'plugin.json'</span><span class="token punctuation">,</span> extensions<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'json'</span><span class="token punctuation">]</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
properties<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'openFile'</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="showsavedialog-options"><a href="#showsavedialog-options" aria-hidden="true" class="header-anchor">#</a> <code>showSaveDialog(options)</code></h3> <ul><li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/dialog#dialogshowsavedialogsyncbrowserwindow-options" target="_blank" rel="noopener noreferrer">Electron API dialog.showSaveDialogSync<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li> <li><p><code>返回</code> String | undefined</p> <blockquote><p>返回选择的路径,用户取消返回 undefined</p></blockquote></li></ul> <blockquote><p>弹出文件保存框</p></blockquote> <h4 id="示例-18"><a href="#示例-18" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showSaveDialog</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
</code></pre></div><h3 id="showsavedialog-options"> <code>showSaveDialog(options)</code></h3> <ul><li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/dialog#dialogshowsavedialogsyncbrowserwindow-options" target="_blank" rel="noopener noreferrer">Electron API dialog.showSaveDialogSync<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li> <li><p><code>返回</code> String | undefined</p> <blockquote><p>返回选择的路径,用户取消返回 undefined</p></blockquote></li></ul> <blockquote><p>弹出文件保存框</p></blockquote> <h4 id="示例-18"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showSaveDialog</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
title<span class="token punctuation">:</span> <span class="token string">'保存位置'</span><span class="token punctuation">,</span>
defaultPath<span class="token punctuation">:</span> utools<span class="token punctuation">.</span><span class="token function">getPath</span><span class="token punctuation">(</span><span class="token string">'downloads'</span><span class="token punctuation">)</span>
buttonLabel<span class="token punctuation">:</span> <span class="token string">'保存'</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="showmessagebox-options"><a href="#showmessagebox-options" aria-hidden="true" class="header-anchor">#</a> <code>showMessageBox(options)</code></h3> <ul><li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/dialog#dialogshowmessageboxsyncbrowserwindow-options" target="_blank" rel="noopener noreferrer">Electron API dialog.showMessageBoxSync<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li> <li><p><code>返回</code> Integer</p> <blockquote><p>返回点击按钮的索引</p></blockquote></li></ul> <blockquote><p>弹出消息框</p></blockquote> <h4 id="示例-19"><a href="#示例-19" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showMessageBox</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
</code></pre></div><h3 id="showmessagebox-options"> <code>showMessageBox(options)</code></h3> <ul><li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/dialog#dialogshowmessageboxsyncbrowserwindow-options" target="_blank" rel="noopener noreferrer">Electron API dialog.showMessageBoxSync<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li> <li><p><code>返回</code> Integer</p> <blockquote><p>返回点击按钮的索引</p></blockquote></li></ul> <blockquote><p>弹出消息框</p></blockquote> <h4 id="示例-19"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showMessageBox</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
type<span class="token punctuation">:</span> <span class="token string">'question'</span><span class="token punctuation">,</span>
buttons<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'取消'</span><span class="token punctuation">,</span> <span class="token string">'关机'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
title<span class="token punctuation">:</span> <span class="token string">'关机确认'</span><span class="token punctuation">,</span>
message<span class="token punctuation">:</span> <span class="token string">'电脑确定要关机?'</span><span class="token punctuation">,</span>
defaultId<span class="token punctuation">:</span> <span class="token number">1</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="findinpage-text-options"><a href="#findinpage-text-options" aria-hidden="true" class="header-anchor">#</a> <code>findInPage(text, options)</code></h3> <ul><li><p><code>text</code> String</p> <blockquote><p>要搜索的内容(必填)</p></blockquote></li> <li><p><code>options</code> Object (可选)</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/web-contents#contentsfindinpagetext-options" target="_blank" rel="noopener noreferrer">Electron API contentsfindinpagetext-options<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li></ul> <blockquote><p>插件页面中查找内容</p></blockquote> <h4 id="示例-20"><a href="#示例-20" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">findInPage</span><span class="token punctuation">(</span><span class="token string">'utools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="stopfindinpage-action"><a href="#stopfindinpage-action" aria-hidden="true" class="header-anchor">#</a> <code>stopFindInPage(action)</code></h3> <ul><li><p><code>action</code> String</p> <blockquote><p>"clearSelection" | "keepSelection" | "activateSelection", 默认 "clearSelection"</p> <p><a href="https://www.electronjs.org/docs/api/web-contents#contentsstopfindinpageaction" target="_blank" rel="noopener noreferrer">Electron API contentsstopfindinpageaction<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 一致</p></blockquote></li></ul> <blockquote><p>停止插件页面中查找</p></blockquote> <h4 id="示例-21"><a href="#示例-21" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">stopFindInPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="startdrag-file"><a href="#startdrag-file" aria-hidden="true" class="header-anchor">#</a> <code>startDrag(file)</code></h3> <ul><li><p><code>file</code> String | Array</p> <blockquote><p>文件路径 或 文件路径集合</p></blockquote></li></ul> <blockquote><p>原生拖拽文件到其他窗口</p></blockquote> <h4 id="示例-22"><a href="#示例-22" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">startDrag</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="createbrowserwindow-url-options"><a href="#createbrowserwindow-url-options" aria-hidden="true" class="header-anchor">#</a> <code>createBrowserWindow(url, options)</code></h3> <ul><li><p><code>url</code> String</p> <blockquote><p>相对路径的html文件 例如: test.html?param=xxx</p></blockquote></li> <li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions" target="_blank" rel="noopener noreferrer">Electron API new BrowserWindow<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 参数一样, 注意: preload 需配置相对位置</p></blockquote></li></ul> <blockquote><p>创建浏览器窗口</p></blockquote> <h4 id="示例-23"><a href="#示例-23" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">createBrowserWindow</span><span class="token punctuation">(</span><span class="token string">'test.html?param=xxxxxx'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="findinpage-text-options"> <code>findInPage(text, options)</code></h3> <ul><li><p><code>text</code> String</p> <blockquote><p>要搜索的内容(必填)</p></blockquote></li> <li><p><code>options</code> Object (可选)</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/web-contents#contentsfindinpagetext-options" target="_blank" rel="noopener noreferrer">Electron API contentsfindinpagetext-options<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> options 一致</p></blockquote></li></ul> <blockquote><p>插件页面中查找内容</p></blockquote> <h4 id="示例-20"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">findInPage</span><span class="token punctuation">(</span><span class="token string">'utools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="stopfindinpage-action"> <code>stopFindInPage(action)</code></h3> <ul><li><p><code>action</code> String</p> <blockquote><p>"clearSelection" | "keepSelection" | "activateSelection", 默认 "clearSelection"</p> <p><a href="https://www.electronjs.org/docs/api/web-contents#contentsstopfindinpageaction" target="_blank" rel="noopener noreferrer">Electron API contentsstopfindinpageaction<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 一致</p></blockquote></li></ul> <blockquote><p>停止插件页面中查找</p></blockquote> <h4 id="示例-21"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">stopFindInPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="startdrag-file"> <code>startDrag(file)</code></h3> <ul><li><p><code>file</code> String | Array</p> <blockquote><p>文件路径 或 文件路径集合</p></blockquote></li></ul> <blockquote><p>原生拖拽文件到其他窗口</p></blockquote> <h4 id="示例-22"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">startDrag</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="createbrowserwindow-url-options"> <code>createBrowserWindow(url, options)</code></h3> <ul><li><p><code>url</code> String</p> <blockquote><p>相对路径的html文件 例如: test.html?param=xxx</p></blockquote></li> <li><p><code>options</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions" target="_blank" rel="noopener noreferrer">Electron API new BrowserWindow<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 参数一样, 注意: preload 需配置相对位置</p></blockquote></li></ul> <blockquote><p>创建浏览器窗口</p></blockquote> <h4 id="示例-23"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">createBrowserWindow</span><span class="token punctuation">(</span><span class="token string">'test.html?param=xxxxxx'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
title<span class="token punctuation">:</span> <span class="token string">'测试窗口'</span><span class="token punctuation">,</span>
fullscreen<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
webPreferences<span class="token punctuation">:</span> <span class="token punctuation">{</span>
preload<span class="token punctuation">:</span> <span class="token string">'test/preload.js'</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="动态增减功能"><a href="#动态增减功能" aria-hidden="true" class="header-anchor">#</a> 动态增减功能</h2> <p>很多时候,插件中会提供一些功能供用户进行个性化设置(例如:<code>网页快开</code>插件),这部分配置无法在<code>plugin.json</code>事先定义好,所以我们提供了以下方法对插件功能进行动态增减。</p> <h3 id="getfeatures"><a href="#getfeatures" aria-hidden="true" class="header-anchor">#</a> <code>getFeatures()</code></h3> <ul><li><code>返回</code> Array</li></ul> <blockquote><p>返回本插件所有动态增加的功能。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> features <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getFeatures</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="动态增减功能"> 动态增减功能</h2> <p>很多时候,插件中会提供一些功能供用户进行个性化设置(例如:<code>网页快开</code>插件),这部分配置无法在<code>plugin.json</code>事先定义好,所以我们提供了以下方法对插件功能进行动态增减。</p> <h3 id="getfeatures"> <code>getFeatures()</code></h3> <ul><li><code>返回</code> Array</li></ul> <blockquote><p>返回本插件所有动态增加的功能。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> features <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getFeatures</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>features<span class="token punctuation">)</span>
</code></pre></div><h3 id="setfeature-feature"><a href="#setfeature-feature" aria-hidden="true" class="header-anchor">#</a> <code>setFeature(feature)</code></h3> <ul><li><code>feature</code> Object
</code></pre></div><h3 id="setfeature-feature"> <code>setFeature(feature)</code></h3> <ul><li><code>feature</code> Object
<blockquote><p>格式与<code>plugin.json</code>中配置的格式一致</p></blockquote> <ul><li><code>code</code> String</li> <li><code>explain</code> String</li> <li><code>icon</code> String (可选)</li> <li><code>platform</code> Array (可选)</li> <li><code>cmds</code> Array</li></ul></li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>为本插件动态新增某个功能。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setFeature</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token string">"code"</span><span class="token punctuation">:</span> <span class="token string">"hosts"</span><span class="token punctuation">,</span>
<span class="token string">"explain"</span><span class="token punctuation">:</span> <span class="token string">"hosts切换"</span><span class="token punctuation">,</span>
@ -86,17 +86,17 @@
<span class="token comment">// "platform": ["win32", "darwin", "linux"]</span>
<span class="token string">"cmds"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">"hosts"</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="removefeature-code"><a href="#removefeature-code" aria-hidden="true" class="header-anchor">#</a> <code>removeFeature(code)</code></h3> <ul><li><code>code</code> String</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>动态删除本插件的某个功能。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">removeFeature</span><span class="token punctuation">(</span><span class="token string">'code'</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="工具"><a href="#工具" aria-hidden="true" class="header-anchor">#</a> 工具</h2> <p>屏幕取色 &amp; 屏幕截图</p> <h3 id="screencolorpick-callback"><a href="#screencolorpick-callback" aria-hidden="true" class="header-anchor">#</a> <code>screenColorPick(callback)</code></h3> <ul><li><code>callback</code> Function
<blockquote><p>取色结束回调</p></blockquote> <ul><li><code>Object</code> <ul><li><code>hex</code> String</li> <li><code>rgb</code> String</li></ul></li></ul></li></ul> <blockquote><p>屏幕取色</p></blockquote> <h4 id="示例-24"><a href="#示例-24" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">screenColorPick</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">{</span>hex<span class="token punctuation">,</span> rgb<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">=&gt;</span><span class="token punctuation">{</span>
</code></pre></div><h3 id="removefeature-code"> <code>removeFeature(code)</code></h3> <ul><li><code>code</code> String</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>动态删除本插件的某个功能。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">removeFeature</span><span class="token punctuation">(</span><span class="token string">'code'</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="工具"> 工具</h2> <p>屏幕取色 &amp; 屏幕截图</p> <h3 id="screencolorpick-callback"> <code>screenColorPick(callback)</code></h3> <ul><li><code>callback</code> Function
<blockquote><p>取色结束回调</p></blockquote> <ul><li><code>Object</code> <ul><li><code>hex</code> String</li> <li><code>rgb</code> String</li></ul></li></ul></li></ul> <blockquote><p>屏幕取色</p></blockquote> <h4 id="示例-24"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">screenColorPick</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">{</span>hex<span class="token punctuation">,</span> rgb<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">=&gt;</span><span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>hex<span class="token punctuation">)</span> <span class="token comment">// #FFFFFF</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>rgb<span class="token punctuation">)</span> <span class="token comment">// RGB(0, 0, 0)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="screencapture-callback"><a href="#screencapture-callback" aria-hidden="true" class="header-anchor">#</a> <code>screenCapture(callback)</code></h3> <ul><li><code>callback</code> Function
<blockquote><p>截图结束回调</p></blockquote> <ul><li><p><code>String</code></p> <blockquote><p>图片的Base64字符串</p></blockquote></li></ul></li></ul> <blockquote><p>屏幕截图</p></blockquote> <h4 id="示例-25"><a href="#示例-25" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">screenCapture</span><span class="token punctuation">(</span>base64Str <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="screencapture-callback"> <code>screenCapture(callback)</code></h3> <ul><li><code>callback</code> Function
<blockquote><p>截图结束回调</p></blockquote> <ul><li><p><code>String</code></p> <blockquote><p>图片的Base64字符串</p></blockquote></li></ul></li></ul> <blockquote><p>屏幕截图</p></blockquote> <h4 id="示例-25"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">screenCapture</span><span class="token punctuation">(</span>base64Str <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
utools<span class="token punctuation">.</span><span class="token function">redirect</span><span class="token punctuation">(</span><span class="token string">'识别图片中文字'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> type<span class="token punctuation">:</span> <span class="token string">'img'</span><span class="token punctuation">,</span> data<span class="token punctuation">:</span> base64Str <span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="模拟"><a href="#模拟" aria-hidden="true" class="header-anchor">#</a> 模拟</h2> <p>模拟敲击键盘 和 鼠标点击</p> <h3 id="simulatekeyboardtap-key-modifier"><a href="#simulatekeyboardtap-key-modifier" aria-hidden="true" class="header-anchor">#</a> <code>simulateKeyboardTap(key, ...modifier)</code></h3> <ul><li><p><code>key</code> String</p> <blockquote><p>键值</p></blockquote></li> <li><p><code>modifier</code> String (可选)</p> <blockquote><p>功能键</p></blockquote></li></ul> <blockquote><p>模拟键盘按键</p></blockquote> <h4 id="示例-26"><a href="#示例-26" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 模拟键盘敲击 Enter</span>
</code></pre></div><h2 id="模拟"> 模拟</h2> <p>模拟敲击键盘 和 鼠标点击</p> <h3 id="simulatekeyboardtap-key-modifier"> <code>simulateKeyboardTap(key, ...modifier)</code></h3> <ul><li><p><code>key</code> String</p> <blockquote><p>键值</p></blockquote></li> <li><p><code>modifier</code> String (可选)</p> <blockquote><p>功能键</p></blockquote></li></ul> <blockquote><p>模拟键盘按键</p></blockquote> <h4 id="示例-26"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 模拟键盘敲击 Enter</span>
utools<span class="token punctuation">.</span><span class="token function">simulateKeyboardTap</span><span class="token punctuation">(</span><span class="token string">'enter'</span><span class="token punctuation">)</span>
<span class="token comment">// windows linux 模拟粘贴</span>
utools<span class="token punctuation">.</span><span class="token function">simulateKeyboardTap</span><span class="token punctuation">(</span><span class="token string">'v'</span><span class="token punctuation">,</span> <span class="token string">'ctrl'</span><span class="token punctuation">)</span>
@ -104,52 +104,52 @@
utools<span class="token punctuation">.</span><span class="token function">simulateKeyboardTap</span><span class="token punctuation">(</span><span class="token string">'v'</span><span class="token punctuation">,</span> <span class="token string">'command'</span><span class="token punctuation">)</span>
<span class="token comment">// 模拟 Ctrl + Alt + A</span>
utools<span class="token punctuation">.</span><span class="token function">simulateKeyboardTap</span><span class="token punctuation">(</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token string">'ctrl'</span><span class="token punctuation">,</span> <span class="token string">'alt'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemousemove-x-y"><a href="#simulatemousemove-x-y" aria-hidden="true" class="header-anchor">#</a> <code>simulateMouseMove(x, y)</code></h3> <ul><li><code>x</code> Integer</li> <li><code>y</code> Integer</li></ul> <blockquote><p>模拟鼠标移动</p></blockquote> <h4 id="示例-27"><a href="#示例-27" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseMove</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemouseclick-x-y"><a href="#simulatemouseclick-x-y" aria-hidden="true" class="header-anchor">#</a> <code>simulateMouseClick(x, y)</code></h3> <ul><li><code>x</code> Integer (可选)</li> <li><code>y</code> Integer (可选)</li></ul> <blockquote><p>模拟鼠标左键单击</p></blockquote> <h4 id="示例-28"><a href="#示例-28" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseClick</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemouserightclick-x-y"><a href="#simulatemouserightclick-x-y" aria-hidden="true" class="header-anchor">#</a> <code>simulateMouseRightClick(x, y)</code></h3> <ul><li><code>x</code> Integer (可选)</li> <li><code>y</code> Integer (可选)</li></ul> <blockquote><p>模拟鼠标右键单击</p></blockquote> <h4 id="示例-29"><a href="#示例-29" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseRightClick</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemousedoubleclick-x-y"><a href="#simulatemousedoubleclick-x-y" aria-hidden="true" class="header-anchor">#</a> <code>simulateMouseDoubleClick(x, y)</code></h3> <ul><li><code>x</code> Integer (可选)</li> <li><code>y</code> Integer (可选)</li></ul> <blockquote><p>模拟鼠标双击</p></blockquote> <h4 id="示例-30"><a href="#示例-30" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseDoubleClick</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="屏幕"><a href="#屏幕" aria-hidden="true" class="header-anchor">#</a> 屏幕</h2> <h3 id="getcursorscreenpoint"><a href="#getcursorscreenpoint" aria-hidden="true" class="header-anchor">#</a> <code>getCursorScreenPoint()</code></h3> <ul><li><p><code>返回</code> Object</p> <blockquote><p>{ x: Integer, y: Integer }</p></blockquote></li></ul> <blockquote><p>获取鼠标绝对位置</p></blockquote> <h4 id="示例-31"><a href="#示例-31" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> point <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getCursorScreenPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemousemove-x-y"> <code>simulateMouseMove(x, y)</code></h3> <ul><li><code>x</code> Integer</li> <li><code>y</code> Integer</li></ul> <blockquote><p>模拟鼠标移动</p></blockquote> <h4 id="示例-27"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseMove</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemouseclick-x-y"> <code>simulateMouseClick(x, y)</code></h3> <ul><li><code>x</code> Integer (可选)</li> <li><code>y</code> Integer (可选)</li></ul> <blockquote><p>模拟鼠标左键单击</p></blockquote> <h4 id="示例-28"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseClick</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemouserightclick-x-y"> <code>simulateMouseRightClick(x, y)</code></h3> <ul><li><code>x</code> Integer (可选)</li> <li><code>y</code> Integer (可选)</li></ul> <blockquote><p>模拟鼠标右键单击</p></blockquote> <h4 id="示例-29"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseRightClick</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="simulatemousedoubleclick-x-y"> <code>simulateMouseDoubleClick(x, y)</code></h3> <ul><li><code>x</code> Integer (可选)</li> <li><code>y</code> Integer (可选)</li></ul> <blockquote><p>模拟鼠标双击</p></blockquote> <h4 id="示例-30"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">simulateMouseDoubleClick</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="屏幕"> 屏幕</h2> <h3 id="getcursorscreenpoint"> <code>getCursorScreenPoint()</code></h3> <ul><li><p><code>返回</code> Object</p> <blockquote><p>{ x: Integer, y: Integer }</p></blockquote></li></ul> <blockquote><p>获取鼠标绝对位置</p></blockquote> <h4 id="示例-31"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> point <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getCursorScreenPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>point<span class="token punctuation">.</span>x<span class="token punctuation">,</span> point<span class="token punctuation">.</span>y<span class="token punctuation">)</span>
</code></pre></div><h3 id="getprimarydisplay"><a href="#getprimarydisplay" aria-hidden="true" class="header-anchor">#</a> <code>getPrimaryDisplay()</code></h3> <ul><li><p><code>返回</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></li></ul> <blockquote><p>获取主显示器</p></blockquote> <h4 id="示例-32"><a href="#示例-32" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> display <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getPrimaryDisplay</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getprimarydisplay"> <code>getPrimaryDisplay()</code></h3> <ul><li><p><code>返回</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></li></ul> <blockquote><p>获取主显示器</p></blockquote> <h4 id="示例-32"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> display <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getPrimaryDisplay</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>display<span class="token punctuation">)</span>
</code></pre></div><h3 id="getalldisplays"><a href="#getalldisplays" aria-hidden="true" class="header-anchor">#</a> <code>getAllDisplays()</code></h3> <ul><li><p><code>返回</code> Array</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 集合</p></blockquote></li></ul> <blockquote><p>获取所有显示器</p></blockquote> <h4 id="示例-33"><a href="#示例-33" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> displays <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getAllDisplays</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getalldisplays"> <code>getAllDisplays()</code></h3> <ul><li><p><code>返回</code> Array</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 集合</p></blockquote></li></ul> <blockquote><p>获取所有显示器</p></blockquote> <h4 id="示例-33"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> displays <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getAllDisplays</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>displays<span class="token punctuation">)</span>
</code></pre></div><h3 id="getdisplaynearestpoint-point"><a href="#getdisplaynearestpoint-point" aria-hidden="true" class="header-anchor">#</a> <code>getDisplayNearestPoint(point)</code></h3> <ul><li><p><code>point</code> Object</p></li> <li><p><code>返回</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></li></ul> <blockquote><p>获取位置所在的显示器</p></blockquote> <h4 id="示例-34"><a href="#示例-34" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> display <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getDisplayNearestPoint</span><span class="token punctuation">(</span><span class="token punctuation">{</span>x<span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">,</span> y<span class="token punctuation">:</span> <span class="token number">100</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getdisplaynearestpoint-point"> <code>getDisplayNearestPoint(point)</code></h3> <ul><li><p><code>point</code> Object</p></li> <li><p><code>返回</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></li></ul> <blockquote><p>获取位置所在的显示器</p></blockquote> <h4 id="示例-34"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> display <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getDisplayNearestPoint</span><span class="token punctuation">(</span><span class="token punctuation">{</span>x<span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">,</span> y<span class="token punctuation">:</span> <span class="token number">100</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>display<span class="token punctuation">)</span>
</code></pre></div><h3 id="getdisplaymatching-rect"><a href="#getdisplaymatching-rect" aria-hidden="true" class="header-anchor">#</a> <code>getDisplayMatching(rect)</code></h3> <ul><li><p><code>rect</code> Object</p></li> <li><p><code>返回</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></li></ul> <blockquote><p>获取矩形所在的显示器</p></blockquote> <h4 id="示例-35"><a href="#示例-35" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> display <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getDisplayMatching</span><span class="token punctuation">(</span><span class="token punctuation">{</span>x<span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">,</span> y<span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">,</span> width<span class="token punctuation">:</span> <span class="token number">200</span><span class="token punctuation">,</span> height<span class="token punctuation">:</span> <span class="token number">200</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getdisplaymatching-rect"> <code>getDisplayMatching(rect)</code></h3> <ul><li><p><code>rect</code> Object</p></li> <li><p><code>返回</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/structures/display" target="_blank" rel="noopener noreferrer">Display对象<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></li></ul> <blockquote><p>获取矩形所在的显示器</p></blockquote> <h4 id="示例-35"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> display <span class="token operator">=</span> utools<span class="token punctuation">.</span><span class="token function">getDisplayMatching</span><span class="token punctuation">(</span><span class="token punctuation">{</span>x<span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">,</span> y<span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">,</span> width<span class="token punctuation">:</span> <span class="token number">200</span><span class="token punctuation">,</span> height<span class="token punctuation">:</span> <span class="token number">200</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>display<span class="token punctuation">)</span>
</code></pre></div><h2 id="复制"><a href="#复制" aria-hidden="true" class="header-anchor">#</a> 复制</h2> <h3 id="copyfile-file"><a href="#copyfile-file" aria-hidden="true" class="header-anchor">#</a> <code>copyFile(file)</code></h3> <ul><li><code>file</code> String | Array</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>复制文件到系统剪贴板</p></blockquote> <h4 id="示例-36"><a href="#示例-36" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 复制单个文件</span>
</code></pre></div><h2 id="复制"> 复制</h2> <h3 id="copyfile-file"> <code>copyFile(file)</code></h3> <ul><li><code>file</code> String | Array</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>复制文件到系统剪贴板</p></blockquote> <h4 id="示例-36"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 复制单个文件</span>
utools<span class="token punctuation">.</span><span class="token function">copyFile</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
<span class="token comment">// 复制多个文件</span>
utools<span class="token punctuation">.</span><span class="token function">copyFile</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'/path/to/file1'</span><span class="token punctuation">,</span> <span class="token string">'/path/to/file2'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="copyimage-img"><a href="#copyimage-img" aria-hidden="true" class="header-anchor">#</a> <code>copyImage(img)</code></h3> <ul><li><code>img</code> String | Buffer</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>复制图片到系统剪贴板</p></blockquote> <h4 id="示例-37"><a href="#示例-37" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 路径</span>
</code></pre></div><h3 id="copyimage-img"> <code>copyImage(img)</code></h3> <ul><li><code>img</code> String | Buffer</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>复制图片到系统剪贴板</p></blockquote> <h4 id="示例-37"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 路径</span>
utools<span class="token punctuation">.</span><span class="token function">copyImage</span><span class="token punctuation">(</span><span class="token string">'/path/to/img.png'</span><span class="token punctuation">)</span>
<span class="token comment">// base64</span>
utools<span class="token punctuation">.</span><span class="token function">copyImage</span><span class="token punctuation">(</span><span class="token string">'data:image/png;base64,xxxxxxxxx'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="copytext-text"><a href="#copytext-text" aria-hidden="true" class="header-anchor">#</a> <code>copyText(text)</code></h3> <ul><li><code>text</code> String</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>复制文本</p></blockquote> <h4 id="示例-38"><a href="#示例-38" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">copyText</span><span class="token punctuation">(</span><span class="token string">'Hi, uTools'</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="系统"><a href="#系统" aria-hidden="true" class="header-anchor">#</a> 系统</h2> <h3 id="shownotification-body"><a href="#shownotification-body" aria-hidden="true" class="header-anchor">#</a> <code>showNotification(body)</code></h3> <ul><li><code>body</code> String</li></ul> <blockquote><p>显示系统通知</p></blockquote> <h4 id="示例-39"><a href="#示例-39" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showNotification</span><span class="token punctuation">(</span><span class="token string">'Hi, uTools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellopenitem-fullpath"><a href="#shellopenitem-fullpath" aria-hidden="true" class="header-anchor">#</a> <code>shellOpenItem(fullPath)</code></h3> <ul><li><code>fullPath</code> String</li></ul> <blockquote><p>系统默认方式打开给定的文件</p></blockquote> <h4 id="示例-40"><a href="#示例-40" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">shellOpenItem</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellshowiteminfolder-fullpath"><a href="#shellshowiteminfolder-fullpath" aria-hidden="true" class="header-anchor">#</a> <code>shellShowItemInFolder(fullPath)</code></h3> <ul><li><code>fullPath</code> String</li></ul> <blockquote><p>系统文件管理器中显示给定的文件</p></blockquote> <h4 id="示例-41"><a href="#示例-41" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">shellShowItemInFolder</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellopenexternal-url"><a href="#shellopenexternal-url" aria-hidden="true" class="header-anchor">#</a> <code>shellOpenExternal(url)</code></h3> <ul><li><code>url</code> String</li></ul> <blockquote><p>系统默认的协议打开URL</p></blockquote> <h4 id="示例-42"><a href="#示例-42" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 浏览器打开</span>
</code></pre></div><h3 id="copytext-text"> <code>copyText(text)</code></h3> <ul><li><code>text</code> String</li> <li><code>返回</code> Boolean</li></ul> <blockquote><p>复制文本</p></blockquote> <h4 id="示例-38"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">copyText</span><span class="token punctuation">(</span><span class="token string">'Hi, uTools'</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="系统"> 系统</h2> <h3 id="shownotification-body"> <code>showNotification(body)</code></h3> <ul><li><code>body</code> String</li></ul> <blockquote><p>显示系统通知</p></blockquote> <h4 id="示例-39"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">showNotification</span><span class="token punctuation">(</span><span class="token string">'Hi, uTools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellopenitem-fullpath"> <code>shellOpenItem(fullPath)</code></h3> <ul><li><code>fullPath</code> String</li></ul> <blockquote><p>系统默认方式打开给定的文件</p></blockquote> <h4 id="示例-40"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">shellOpenItem</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellshowiteminfolder-fullpath"> <code>shellShowItemInFolder(fullPath)</code></h3> <ul><li><code>fullPath</code> String</li></ul> <blockquote><p>系统文件管理器中显示给定的文件</p></blockquote> <h4 id="示例-41"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">shellShowItemInFolder</span><span class="token punctuation">(</span><span class="token string">'/path/to/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellopenexternal-url"> <code>shellOpenExternal(url)</code></h3> <ul><li><code>url</code> String</li></ul> <blockquote><p>系统默认的协议打开URL</p></blockquote> <h4 id="示例-42"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 浏览器打开</span>
utools<span class="token punctuation">.</span><span class="token function">shellOpenExternal</span><span class="token punctuation">(</span><span class="token string">'https://u.tools'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellbeep"><a href="#shellbeep" aria-hidden="true" class="header-anchor">#</a> <code>shellBeep()</code></h3> <blockquote><p>播放哔哔声</p></blockquote> <h4 id="示例-43"><a href="#示例-43" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">shellBeep</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getlocalid"><a href="#getlocalid" aria-hidden="true" class="header-anchor">#</a> <code>getLocalId()</code></h3> <ul><li><code>返回</code> String</li></ul> <blockquote><p>获取本地ID</p></blockquote> <h4 id="示例-44"><a href="#示例-44" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getLocalId</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getpath-name"><a href="#getpath-name" aria-hidden="true" class="header-anchor">#</a> <code>getPath(name)</code></h3> <ul><li><code>name</code> String
</code></pre></div><h3 id="shellbeep"> <code>shellBeep()</code></h3> <blockquote><p>播放哔哔声</p></blockquote> <h4 id="示例-43"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">shellBeep</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getlocalid"> <code>getLocalId()</code></h3> <ul><li><code>返回</code> String</li></ul> <blockquote><p>获取本地ID</p></blockquote> <h4 id="示例-44"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getLocalId</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getpath-name"> <code>getPath(name)</code></h3> <ul><li><code>name</code> String
<blockquote><p>你可以通过名称请求以下的路径:</p></blockquote> <ul><li><code>home</code> 用户的 home 文件夹(主目录)</li> <li><code>appData</code> 当前用户的应用数据文件夹,默认对应:
<ul><li><code>%APPDATA%</code> Windows 中</li> <li><code>~/Library/Application Support</code> macOS 中</li></ul></li> <li><code>userData</code> 储存你应用程序设置文件的文件夹,默认是 appData 文件夹附加应用的名称</li> <li><code>temp</code> 临时文件夹</li> <li><code>exe</code> 当前的可执行文件</li> <li><code>desktop</code> 当前用户的桌面文件夹</li> <li><code>documents</code> 用户文档目录的路径</li> <li><code>downloads</code> 用户下载目录的路径</li> <li><code>music</code> 用户音乐目录的路径</li> <li><code>pictures</code> 用户图片目录的路径</li> <li><code>videos</code> 用户视频目录的路径</li> <li><code>logs</code> 应用程序的日志文件夹</li></ul></li> <li><code>返回</code> String</li></ul> <blockquote><p>获取路径</p></blockquote> <h4 id="示例-45"><a href="#示例-45" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 获取下载路径</span>
<ul><li><code>%APPDATA%</code> Windows 中</li> <li><code>~/Library/Application Support</code> macOS 中</li></ul></li> <li><code>userData</code> 储存你应用程序设置文件的文件夹,默认是 appData 文件夹附加应用的名称</li> <li><code>temp</code> 临时文件夹</li> <li><code>exe</code> 当前的可执行文件</li> <li><code>desktop</code> 当前用户的桌面文件夹</li> <li><code>documents</code> 用户文档目录的路径</li> <li><code>downloads</code> 用户下载目录的路径</li> <li><code>music</code> 用户音乐目录的路径</li> <li><code>pictures</code> 用户图片目录的路径</li> <li><code>videos</code> 用户视频目录的路径</li> <li><code>logs</code> 应用程序的日志文件夹</li></ul></li> <li><code>返回</code> String</li></ul> <blockquote><p>获取路径</p></blockquote> <h4 id="示例-45"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 获取下载路径</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getPath</span><span class="token punctuation">(</span><span class="token string">'downloads'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getcurrentfolderpath"><a href="#getcurrentfolderpath" aria-hidden="true" class="header-anchor">#</a> <code>getCurrentFolderPath()</code></h3> <ul><li><code>返回</code> String</li></ul> <blockquote><p>获取当前文件管理器路径(linux 不支持)呼出uTools前的活动窗口为资源管理器才能获取</p></blockquote> <h4 id="示例-46"><a href="#示例-46" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getCurrentFolderPath</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getcurrentbrowserurl"><a href="#getcurrentbrowserurl" aria-hidden="true" class="header-anchor">#</a> <code>getCurrentBrowserUrl()</code></h3> <ul><li><code>返回</code> String</li></ul> <blockquote><p>获取当前浏览器URL(linux 不支持), 呼出uTools前的活动窗口为浏览器才能获取</p></blockquote> <blockquote><p>MacOs 支持浏览器 Safari、Chrome、Opera、Vivaldi、Brave</p></blockquote> <blockquote><p>Windows 支持浏览器 Chrome、Firefox、Edge、IE、Opera、Brave</p></blockquote> <h4 id="示例-47"><a href="#示例-47" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getCurrentBrowserUrl</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="ismacos"><a href="#ismacos" aria-hidden="true" class="header-anchor">#</a> <code>isMacOs()</code></h3> <blockquote><p>是否 MacOs 操作系统</p></blockquote> <h4 id="示例-48"><a href="#示例-48" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">if</span> <span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">isMacOs</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="getcurrentfolderpath"> <code>getCurrentFolderPath()</code></h3> <ul><li><code>返回</code> String</li></ul> <blockquote><p>获取当前文件管理器路径(linux 不支持)呼出uTools前的活动窗口为资源管理器才能获取</p></blockquote> <h4 id="示例-46"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getCurrentFolderPath</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getcurrentbrowserurl"> <code>getCurrentBrowserUrl()</code></h3> <ul><li><code>返回</code> String</li></ul> <blockquote><p>获取当前浏览器URL(linux 不支持), 呼出uTools前的活动窗口为浏览器才能获取</p></blockquote> <blockquote><p>MacOs 支持浏览器 Safari、Chrome、Opera、Vivaldi、Brave</p></blockquote> <blockquote><p>Windows 支持浏览器 Chrome、Firefox、Edge、IE、Opera、Brave</p></blockquote> <h4 id="示例-47"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getCurrentBrowserUrl</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="ismacos"> <code>isMacOs()</code></h3> <blockquote><p>是否 MacOs 操作系统</p></blockquote> <h4 id="示例-48"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">if</span> <span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">isMacOs</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'mac'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="iswindows"><a href="#iswindows" aria-hidden="true" class="header-anchor">#</a> <code>isWindows()</code></h3> <blockquote><p>是否 Windows 操作系统</p></blockquote> <h4 id="示例-49"><a href="#示例-49" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">if</span> <span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">isWindows</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="iswindows"> <code>isWindows()</code></h3> <blockquote><p>是否 Windows 操作系统</p></blockquote> <h4 id="示例-49"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">if</span> <span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">isWindows</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'windows'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="islinux"><a href="#islinux" aria-hidden="true" class="header-anchor">#</a> <code>isLinux()</code></h3> <blockquote><p>是否 Linux 操作系统</p></blockquote> <h4 id="示例-50"><a href="#示例-50" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">if</span> <span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">isLinux</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
</code></pre></div><h3 id="islinux"> <code>isLinux()</code></h3> <blockquote><p>是否 Linux 操作系统</p></blockquote> <h4 id="示例-50"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">if</span> <span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">isLinux</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'linux'</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span>
</code></pre></div><h2 id="本地数据库"><a href="#本地数据库" aria-hidden="true" class="header-anchor">#</a> 本地数据库</h2> <p>传统的B/S结构的程序中除了前端的开发之外可能还需要有一台服务器、一门后端语言和一个数据库来处理和存储用户数据这会带来很大的维护成本和可用性的问题。</p> <p>uTools的很多插件就像是一个微型的应用程序总是会碰到一些数据需要持久化存储的场景为了解决这个问题我们整合并提供了一个nosql数据库系统它可以很方便的使用如果开启同步的话可在多个设备之间实现秒级同步。</p> <h3 id="utools-db-put-doc"><a href="#utools-db-put-doc" aria-hidden="true" class="header-anchor">#</a> <code>utools.db.put(doc)</code></h3> <ul><li><code>doc</code> Object</li> <li><code>返回</code> Object</li></ul> <blockquote><p>执行该方法将会创建或更新数据库文档</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 创建请求</span>
</code></pre></div><h2 id="本地数据库"> 本地数据库</h2> <p>传统的B/S结构的程序中除了前端的开发之外可能还需要有一台服务器、一门后端语言和一个数据库来处理和存储用户数据这会带来很大的维护成本和可用性的问题。</p> <p>uTools的很多插件就像是一个微型的应用程序总是会碰到一些数据需要持久化存储的场景为了解决这个问题我们整合并提供了一个nosql数据库系统它可以很方便的使用如果开启同步的话可在多个设备之间实现秒级同步。</p> <h3 id="utools-db-put-doc"> <code>utools.db.put(doc)</code></h3> <ul><li><code>doc</code> Object</li> <li><code>返回</code> Object</li></ul> <blockquote><p>执行该方法将会创建或更新数据库文档</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 创建请求</span>
utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
_id<span class="token punctuation">:</span> <span class="token string">"demo"</span><span class="token punctuation">,</span>
data<span class="token punctuation">:</span> <span class="token string">"demo"</span>
@ -162,11 +162,11 @@
data<span class="token punctuation">:</span> <span class="token string">"demo"</span><span class="token punctuation">,</span>
_rev<span class="token punctuation">:</span> <span class="token string">"1-05c9b92e6f24287dc1f4ec79d9a34fa8"</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><p><code>_id</code>代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个<code>rev</code>属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。</p> <p>另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。</p> <h3 id="utools-db-get-id"><a href="#utools-db-get-id" aria-hidden="true" class="header-anchor">#</a> <code>utools.db.get(id)</code></h3> <ul><li><code>id</code> String</li> <li><code>返回</code> Object</li></ul> <blockquote><p>执行该方法将会根据文档ID获取数据</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token keyword">get</span><span class="token punctuation">(</span><span class="token string">"demo"</span><span class="token punctuation">)</span>
</code></pre></div><p><code>_id</code>代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个<code>rev</code>属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。</p> <p>另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。</p> <h3 id="utools-db-get-id"> <code>utools.db.get(id)</code></h3> <ul><li><code>id</code> String</li> <li><code>返回</code> Object</li></ul> <blockquote><p>执行该方法将会根据文档ID获取数据</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token keyword">get</span><span class="token punctuation">(</span><span class="token string">"demo"</span><span class="token punctuation">)</span>
<span class="token comment">// 返回 {_id: "demo", _rev: "3-9836c5c68af5aef618e17d615882942a", data: "demo"}</span>
</code></pre></div><h3 id="utools-db-remove-doc"><a href="#utools-db-remove-doc" aria-hidden="true" class="header-anchor">#</a> <code>utools.db.remove(doc)</code></h3> <ul><li><code>doc</code> String | Object</li> <li><code>返回</code> Object</li></ul> <blockquote><p>执行该方法将会删除数据库文档可以传入文档对象或文档id进行操作。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">"demo"</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="utools-db-remove-doc"> <code>utools.db.remove(doc)</code></h3> <ul><li><code>doc</code> String | Object</li> <li><code>返回</code> Object</li></ul> <blockquote><p>执行该方法将会删除数据库文档可以传入文档对象或文档id进行操作。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">"demo"</span><span class="token punctuation">)</span>
<span class="token comment">// 返回 {id: "demo", ok: true, rev: "2-effe5dbc23dffc180d8411b23f3108fb"}</span>
</code></pre></div><h3 id="utools-db-bulkdocs-docs"><a href="#utools-db-bulkdocs-docs" aria-hidden="true" class="header-anchor">#</a> <code>utools.db.bulkDocs(docs)</code></h3> <ul><li><code>docs</code> Array</li> <li><code>返回</code> Array</li></ul> <blockquote><p>执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">bulkDocs</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span>
</code></pre></div><h3 id="utools-db-bulkdocs-docs"> <code>utools.db.bulkDocs(docs)</code></h3> <ul><li><code>docs</code> Array</li> <li><code>返回</code> Array</li></ul> <blockquote><p>执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">bulkDocs</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span>
_id<span class="token punctuation">:</span> <span class="token string">"demo1"</span><span class="token punctuation">,</span>
data<span class="token punctuation">:</span> <span class="token string">"demo"</span><span class="token punctuation">,</span>
_rev<span class="token punctuation">:</span> <span class="token string">"1-c8817a74e292eda4cba1a45924853af6"</span>
@ -182,7 +182,7 @@
id: "demo2", ok: true, rev: "2-7857b2801bc0303d2cc0bb82e8afd796"
}]
*/</span>
</code></pre></div><h3 id="utools-db-alldocs-key"><a href="#utools-db-alldocs-key" aria-hidden="true" class="header-anchor">#</a> <code>utools.db.allDocs(key)</code></h3> <ul><li><code>key</code> String | Array</li> <li><code>返回</code> Array</li></ul> <blockquote><p>执行该方法将会获取所有数据库文档如果传入字符串则会返回以字符串开头的文档也可以传入指定ID的数组不传入则为获取所有文档。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 获取所有文档</span>
</code></pre></div><h3 id="utools-db-alldocs-key"> <code>utools.db.allDocs(key)</code></h3> <ul><li><code>key</code> String | Array</li> <li><code>返回</code> Array</li></ul> <blockquote><p>执行该方法将会获取所有数据库文档如果传入字符串则会返回以字符串开头的文档也可以传入指定ID的数组不传入则为获取所有文档。</p></blockquote> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 获取所有文档</span>
utools<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">allDocs</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment">// 传入字符串则返回id以 demo 开头的文档</span>
@ -208,9 +208,9 @@
_id: "demo2", _rev: "1-f0399b42cc6123a9cc8503632ba7b3a7", data: "demo"
}]
*/</span>
</code></pre></div><h2 id="ubrowser"><a href="#ubrowser" aria-hidden="true" class="header-anchor">#</a> <a href="/docs/developer/ubrowser.html" class="">ubrowser</a></h2> <p>可编程浏览器</p> <h3 id="getidleubrowsers"><a href="#getidleubrowsers" aria-hidden="true" class="header-anchor">#</a> <code>getIdleUBrowsers()</code></h3> <ul><li><code>返回</code> Array</li></ul> <blockquote><p>获取闲置的 ubrowser</p></blockquote> <h4 id="示例-51"><a href="#示例-51" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getIdleUBrowsers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="ubrowser"> <a href="/docs/developer/ubrowser.html" class="">ubrowser</a></h2> <p>可编程浏览器</p> <h3 id="getidleubrowsers"> <code>getIdleUBrowsers()</code></h3> <ul><li><code>返回</code> Array</li></ul> <blockquote><p>获取闲置的 ubrowser</p></blockquote> <h4 id="示例-51"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>utools<span class="token punctuation">.</span><span class="token function">getIdleUBrowsers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment">// [{ id: number, title: string, url: string }]</span>
</code></pre></div><h3 id="setubrowserproxy-config"><a href="#setubrowserproxy-config" aria-hidden="true" class="header-anchor">#</a> <code>setUBrowserProxy(config)</code></h3> <ul><li><p><code>config</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/session#sessetproxyconfig" target="_blank" rel="noopener noreferrer">Electron API<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 一致</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>设置 ubrowser 代理</p></blockquote> <h4 id="示例-52"><a href="#示例-52" aria-hidden="true" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setUBrowserProxy</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
</code></pre></div><h3 id="setubrowserproxy-config"> <code>setUBrowserProxy(config)</code></h3> <ul><li><p><code>config</code> Object</p> <blockquote><p><a href="https://www.electronjs.org/docs/api/session#sessetproxyconfig" target="_blank" rel="noopener noreferrer">Electron API<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 一致</p></blockquote></li> <li><p><code>返回</code> Boolean</p></li></ul> <blockquote><p>设置 ubrowser 代理</p></blockquote> <h4 id="示例-52"> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>utools<span class="token punctuation">.</span><span class="token function">setUBrowserProxy</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
proxyRules<span class="token punctuation">:</span> <span class="token string">'http=foopy:80;ftp=foopy2'</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div>

View File

@ -1,4 +1,4 @@
<h1 id="完整配置"><a href="#完整配置" aria-hidden="true" class="header-anchor">#</a> 完整配置</h1>
<h1 id="完整配置"> 完整配置</h1>
<p>如上一章hello world的例子所示<code>plugin.json</code>文件可以让你的插件与uTools无缝的结合在一起下面我们列出了所有可能的配置项及注释供你参考</p>
<div class="language-json extra-class">
<pre class="language-json"><code><span class="token punctuation">{</span>

View File

@ -1,4 +1,4 @@
<h1 id="preload-js"><a href="#preload-js" aria-hidden="true" class="header-anchor">#</a> preload.js</h1> <p>当你在<code>plugin.json</code>中配置了<code>preload</code>属性,将载入对应的预加载脚本。</p> <p>在传统的web开发中所有的javascript脚本都在浏览器沙盒中运行权限被严格限制所能实现的功能非常有限。</p> <p>通过<code>preload.js</code>能够帮你突破沙盒限制进入一个崭新的JavaScript世界。</p> <p><code>preload.js</code> 是一个特殊且单独的文件,不需要与其他业务代码编译在一起,在此文件中可以访问<code>nodejs</code><code>electron</code><code>uTools</code>提供的api并挂载到<code>window</code>对象中你其他的普通javascript代码就可以访问这些 api。</p> <div class="language-javascript extra-class"><pre class="language-javascript"><code> <span class="token comment">// 开发者可以暴露自定义API供后加载脚本使用</span>
<h1 id="preload-js"> preload.js</h1> <p>当你在<code>plugin.json</code>中配置了<code>preload</code>属性,将载入对应的预加载脚本。</p> <p>在传统的web开发中所有的javascript脚本都在浏览器沙盒中运行权限被严格限制所能实现的功能非常有限。</p> <p>通过<code>preload.js</code>能够帮你突破沙盒限制进入一个崭新的JavaScript世界。</p> <p><code>preload.js</code> 是一个特殊且单独的文件,不需要与其他业务代码编译在一起,在此文件中可以访问<code>nodejs</code><code>electron</code><code>uTools</code>提供的api并挂载到<code>window</code>对象中你其他的普通javascript代码就可以访问这些 api。</p> <div class="language-javascript extra-class"><pre class="language-javascript"><code> <span class="token comment">// 开发者可以暴露自定义API供后加载脚本使用</span>
<span class="token comment">// preload.js 中使用nodejs</span>
<span class="token keyword">const</span> <span class="token punctuation">{</span> readFileSync <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>

View File

@ -1,4 +1,4 @@
<h1 id="模板插件"><a href="#模板插件" aria-hidden="true" class="header-anchor">#</a> 模板插件</h1> <p>uTools 的插件开发给予了开发者最大的自由度你可以随心所欲的设计页面结构、样式、交互对于特别擅长前端开发的同学这没有什么问题但对于非前端开发者要做出漂亮的、高质量的前端UI是一件困难的事情。</p> <p>我们发现在uTools使用环境中很多插件的场景都有其共性所以我们抽象出一套体验统一、高质量、高性能的通用模版如果你想开发的插件场景适合使用此模版那么你只需提供数据并提供一些回调函数即可。</p> <h3 id="plugin-json-文件"><a href="#plugin-json-文件" aria-hidden="true" class="header-anchor">#</a> plugin.json 文件</h3> <p>要使用uTools模版首先第一步就是删除<code>plugin.json</code>文件中的<code>main</code>属性。</p> <p><s><code>"main": "index.html"</code></s></p> <h3 id="preload-js-文件"><a href="#preload-js-文件" aria-hidden="true" class="header-anchor">#</a> preload.js 文件</h3> <div class="language-js extra-class"><pre class="language-js"><code><span class="token operator">...</span>
<h1 id="模板插件"> 模板插件</h1> <p>uTools 的插件开发给予了开发者最大的自由度你可以随心所欲的设计页面结构、样式、交互对于特别擅长前端开发的同学这没有什么问题但对于非前端开发者要做出漂亮的、高质量的前端UI是一件困难的事情。</p> <p>我们发现在uTools使用环境中很多插件的场景都有其共性所以我们抽象出一套体验统一、高质量、高性能的通用模版如果你想开发的插件场景适合使用此模版那么你只需提供数据并提供一些回调函数即可。</p> <h3 id="plugin-json-文件"> plugin.json 文件</h3> <p>要使用uTools模版首先第一步就是删除<code>plugin.json</code>文件中的<code>main</code>属性。</p> <p><s><code>"main": "index.html"</code></s></p> <h3 id="preload-js-文件"> preload.js 文件</h3> <div class="language-js extra-class"><pre class="language-js"><code><span class="token operator">...</span>
其他 js 代码
<span class="token operator">...</span>
@ -79,4 +79,4 @@
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre></div><h2 id="示例项目"><a href="#示例项目" aria-hidden="true" class="header-anchor">#</a> 示例项目</h2> <h3 id="无ui-列表模式"><a href="#无ui-列表模式" aria-hidden="true" class="header-anchor">#</a> 无UI + 列表模式</h3> <ul><li>Chrome 小助手 https://github.com/in3102/utools-chrome_helper</li></ul> <h3 id="文档模式"><a href="#文档模式" aria-hidden="true" class="header-anchor">#</a> 文档模式</h3> <ul><li>MDN 文档(包含 JavaScript、Html、CSS、Web API/DOM、HTTP https://github.com/in3102/utools-mdn-doc</li> <li>Python 文档 https://github.com/in3102/utools-python-doc</li> <li>Linux 命令文档 https://github.com/in3102/utools-linux-doc</li> <li>PHP 文档 https://github.com/in3102/utools-php-doc</li></ul> <h2 id="ui展示"><a href="#ui展示" aria-hidden="true" class="header-anchor">#</a> UI展示</h2> <p><img src="/docs/assets/img/docs.55f26ec9.png" alt="docs.png"></p>
</code></pre></div><h2 id="示例项目"> 示例项目</h2> <h3 id="无ui-列表模式"> 无UI + 列表模式</h3> <ul><li>Chrome 小助手 https://github.com/in3102/utools-chrome_helper</li></ul> <h3 id="文档模式"> 文档模式</h3> <ul><li>MDN 文档(包含 JavaScript、Html、CSS、Web API/DOM、HTTP https://github.com/in3102/utools-mdn-doc</li> <li>Python 文档 https://github.com/in3102/utools-python-doc</li> <li>Linux 命令文档 https://github.com/in3102/utools-linux-doc</li> <li>PHP 文档 https://github.com/in3102/utools-php-doc</li></ul> <h2 id="ui展示"> UI展示</h2> <p><img src="/docs/assets/img/docs.55f26ec9.png" alt="docs.png"></p>

File diff suppressed because one or more lines are too long