This commit is contained in:
hyb1996
2017-12-28 21:23:35 +08:00
parent 3647cef81b
commit ee0c7f4916
16 changed files with 2085 additions and 745 deletions

View File

@@ -83,12 +83,11 @@
<li><span class="stability_undefined"><a href="#engines_scriptexecution">ScriptExecution</a></span><ul>
<li><span class="stability_undefined"><a href="#engines_scriptexecution_getengine">ScriptExecution.getEngine()</a></span></li>
<li><span class="stability_undefined"><a href="#engines_scriptexecution_getconfig">ScriptExecution.getConfig()</a></span></li>
<li><span class="stability_undefined"><a href="#engines_scriptexecution_getsource">ScriptExecution.getSource()</a></span></li>
</ul>
</li>
<li><span class="stability_undefined"><a href="#engines_scriptengine">ScriptEngine</a></span><ul>
<li><span class="stability_undefined"><a href="#engines_scriptengine_forcestop">ScriptEngine.forceStop()</a></span></li>
<li><span class="stability_undefined"><a href="#engines_scriptengine_gettag_tagname">ScriptEngine.getTag(tagName)</a></span></li>
<li><span class="stability_undefined"><a href="#engines_scriptengine_cwd">ScriptEngine.cwd()</a></span></li>
</ul>
</li>
<li><span class="stability_undefined"><a href="#engines_scriptconfig">ScriptConfig</a></span><ul>
@@ -98,99 +97,126 @@
<li><span class="stability_undefined"><a href="#engines_getpath">getPath()</a></span></li>
</ul>
</li>
<li><span class="stability_undefined"><a href="#engines_scriptsource">ScriptSource</a></span><ul>
<li><span class="stability_undefined"><a href="#engines_getname">getName()</a></span></li>
<li><span class="stability_undefined"><a href="#engines_getenginename">getEngineName()</a></span></li>
</ul>
</li>
</ul>
</div>
<div id="apicontent">
<h1>Engines<span><a class="mark" href="#engines_engines" id="engines_engines">#</a></span></h1>
<div class="api_stability api_stability_2"><a href="documentation.html#documentation_stability_index">Stability: 2</a> - Stable</div><p>engines模块包含了一些与脚本引擎有关的函数包括运行其他脚本关闭脚本等。</p>
<h2>engines.execScript(name, script[, config])<span><a class="mark" href="#engines_engines_execscript_name_script_config" id="engines_engines_execscript_name_script_config">#</a></span></h2>
<div class="api_stability api_stability_2"><a href="documentation.html#documentation_stability_index">Stability: 2</a> - Stable</div><p>engines模块包含了一些与脚本环境、脚本运行、脚本引擎有关的函数,包括运行其他脚本,关闭脚本等。</p>
<p>例如,获取脚本所在目录:</p>
<pre><code>toast(engines.myEngine().cwd());
</code></pre><h2>engines.execScript(name, script[, config])<span><a class="mark" href="#engines_engines_execscript_name_script_config" id="engines_engines_execscript_name_script_config">#</a></span></h2>
<div class="signature"><ul>
<li><code>name</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 要运行的脚本名称。这个名称和文件名称无关,只是在任务管理中显示的名称。</li>
<li><code>script</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 要运行的脚本内容。</li>
<li><code>config</code> \<Object\> 运行配置项<ul>
<li><code>config</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" class="type">&lt;Object&gt;</a> 运行配置项<ul>
<li><code>delay</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 延迟执行的毫秒数默认为0</li>
<li><code>loopTimes</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行次数默认为1</li>
<li><code>loopTimes</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行次数默认为1。0为无限循环。</li>
<li><code>interval</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行时两次运行之间的时间间隔默认为0</li>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a> | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 指定脚本运行的目录。这路径会用于require时寻找模块文件。</li>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a> | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 指定脚本运行的目录。这路径会用于require时寻找模块文件。</li>
</ul>
</li>
</ul>
</div><p>在新线程中运行脚本script。返回一个<a href="#engines_scriptexecution">ScriptExectuion</a>对象。</p>
<h2>engines.execScriptFile(path[, config])<span><a class="mark" href="#engines_engines_execscriptfile_path_config" id="engines_engines_execscriptfile_path_config">#</a></span></h2>
</div><p>在新的脚本环境中运行脚本script。返回一个<a href="#engines_scriptexecution">ScriptExectuion</a>对象。</p>
<p>所谓新的脚本环境,指定是,脚本中的变量和原脚本的变量是不共享的,并且,脚本会在新的线程中运行。</p>
<p>最简单的例子如下:</p>
<pre><code>engines.execScript(&quot;hello world&quot;, &quot;toast(&#39;hello world&#39;)&quot;);
</code></pre><p>如果要循环运行,则:</p>
<pre><code>//每隔3秒运行一次脚本循环10次
engines.execScript(&quot;hello world&quot;, &quot;toast(&#39;hello world&#39;)&quot;, {
loopTimes: 10,
interval: 3000
});
</code></pre><p>用字符串来编写脚本非常不方便,可以结合 <code>Function.toString()</code>的方法来执行特定函数:</p>
<pre><code>function helloWorld(){
//注意,这里的变量和脚本主体的变量并不共享
toast(&quot;hello world&quot;);
}
engines.execScript(&quot;hello world&quot;, &quot;helloWorld();\n&quot; + helloWorld.toString());
</code></pre><p>如果要传递变量,则可以把这些封装成一个函数:</p>
<pre><code>function exec(action, args){
args = args || {};
engines.execScript(action.name, action + &quot;(&quot; + JSON.stringify(args) + &quot;);\n&quot; + action.toString());
}
//要执行的函数,是一个简单的加法
function add(args){
toast(args.a + args.b);
}
//在新的脚本环境中执行 1 + 2
exec(add, {a: 1, b:2});
</code></pre><h2>engines.execScriptFile(path[, config])<span><a class="mark" href="#engines_engines_execscriptfile_path_config" id="engines_engines_execscriptfile_path_config">#</a></span></h2>
<div class="signature"><ul>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 要运行的脚本路径。</li>
<li><code>config</code> \<Object\> 运行配置项<ul>
<li><code>config</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" class="type">&lt;Object&gt;</a> 运行配置项<ul>
<li><code>delay</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 延迟执行的毫秒数默认为0</li>
<li><code>loopTimes</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行次数默认为1</li>
<li><code>loopTimes</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行次数默认为1。0为无限循环。</li>
<li><code>interval</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行时两次运行之间的时间间隔默认为0</li>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a> | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 指定脚本运行的目录。这路径会用于require时寻找模块文件。</li>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a> | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 指定脚本运行的目录。这路径会用于require时寻找模块文件。</li>
</ul>
</li>
</ul>
</div><p>在新线程中运行脚本文件path。返回一个<a href="#ScriptExecution">ScriptExecution</a>对象。</p>
<h2>engines.execAutoFile(path[, config])<span><a class="mark" href="#engines_engines_execautofile_path_config" id="engines_engines_execautofile_path_config">#</a></span></h2>
</div><p>在新的脚本环境中运行脚本文件path。返回一个<a href="#ScriptExecution">ScriptExecution</a>对象。</p>
<pre><code>engines.execScriptFile(&quot;/sdcard/脚本/1.js&quot;);
</code></pre><h2>engines.execAutoFile(path[, config])<span><a class="mark" href="#engines_engines_execautofile_path_config" id="engines_engines_execautofile_path_config">#</a></span></h2>
<div class="signature"><ul>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 要运行的录制文件路径。</li>
<li><code>config</code> \<Object\> 运行配置项<ul>
<li><code>config</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" class="type">&lt;Object&gt;</a> 运行配置项<ul>
<li><code>delay</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 延迟执行的毫秒数默认为0</li>
<li><code>loopTimes</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行次数默认为1</li>
<li><code>loopTimes</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行次数默认为1。0为无限循环。</li>
<li><code>interval</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a> 循环运行时两次运行之间的时间间隔默认为0</li>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a> | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 指定脚本运行的目录。这路径会用于require时寻找模块文件。</li>
<li><code>path</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a> | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 指定脚本运行的目录。这路径会用于require时寻找模块文件。</li>
</ul>
</li>
</ul>
</div><p>在新线程中运行录制文件path。返回一个<a href="#ScriptExecution">ScriptExecution</a>对象。</p>
<h2>engines.stopAll()<span><a class="mark" href="#engines_engines_stopall" id="engines_engines_stopall">#</a></span></h2>
</div><p>在新的脚本环境中运行录制文件path。返回一个<a href="#ScriptExecution">ScriptExecution</a>对象。</p>
<pre><code>engines.execAutoFile(&quot;/sdcard/脚本/1.auto&quot;);
</code></pre><h2>engines.stopAll()<span><a class="mark" href="#engines_engines_stopall" id="engines_engines_stopall">#</a></span></h2>
<p>停止所有正在运行的脚本。包括当前脚本自身。</p>
<h2>engines.stopAllAndToast()<span><a class="mark" href="#engines_engines_stopallandtoast" id="engines_engines_stopallandtoast">#</a></span></h2>
<p>停止所有正在运行的脚本并显示停止的脚本数量。包括当前脚本自身。</p>
<h2>engines.myEngine()<span><a class="mark" href="#engines_engines_myengine" id="engines_engines_myengine">#</a></span></h2>
<p>返回当前脚本的脚本引擎对象(<a href="#engines_scriptengine">ScriptEngine</a>)</p>
<h1>ScriptExecution<span><a class="mark" href="#engines_scriptexecution" id="engines_scriptexecution">#</a></span></h1>
<p>执行脚本时返回的对象,可以通过他获取执行的引擎、配置、源码等。</p>
<p>执行脚本时返回的对象,可以通过他获取执行的引擎、配置等,也可以停止这个执行</p>
<p>要停止这个脚本的执行,使用<code>exectuion.getEngine().forceStop()</code>.</p>
<h2>ScriptExecution.getEngine()<span><a class="mark" href="#engines_scriptexecution_getengine" id="engines_scriptexecution_getengine">#</a></span></h2>
<p>返回执行该脚本的脚本引擎对象(<a href="#engines_scriptengine">ScriptEngine</a>)</p>
<h2>ScriptExecution.getConfig()<span><a class="mark" href="#engines_scriptexecution_getconfig" id="engines_scriptexecution_getconfig">#</a></span></h2>
<p>返回该脚本的运行配置(<a href="#engines_scriptconfig">ScriptConfig</a>)</p>
<h2>ScriptExecution.getSource()<span><a class="mark" href="#engines_scriptexecution_getsource" id="engines_scriptexecution_getsource">#</a></span></h2>
<p>返回该脚本的源码对象(<a href="#engines_scriptsource">ScriptSource</a>)</p>
<h1>ScriptEngine<span><a class="mark" href="#engines_scriptengine" id="engines_scriptengine">#</a></span></h1>
<p>脚本引擎对象。</p>
<h2>ScriptEngine.forceStop()<span><a class="mark" href="#engines_scriptengine_forcestop" id="engines_scriptengine_forcestop">#</a></span></h2>
<p>停止脚本引擎的执行。</p>
<h2>ScriptEngine.getTag(tagName)<span><a class="mark" href="#engines_scriptengine_gettag_tagname" id="engines_scriptengine_gettag_tagname">#</a></span></h2>
<h2>ScriptEngine.cwd()<span><a class="mark" href="#engines_scriptengine_cwd" id="engines_scriptengine_cwd">#</a></span></h2>
<div class="signature"><ul>
<li><code>tagName</code> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a> 名称</li>
<li>返回 <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type" class="type">&lt;string&gt;</a></li>
</ul>
</div><p>返回对应于tagName的附加在该脚本引擎上的额外信息。tagName包括</p>
<ul>
<li><code>source</code> 该脚本引擎当前正在执行的源码(<a href="#engines_scriptsource">ScriptSource</a>)</li>
<li><code>execute_path</code> 该脚本引擎当前执行的路径</li>
</ul>
<p>停止脚本引擎的执行。</p>
</div><p>返回脚本执行的路径。对于一个脚本文件而言为这个脚本所在的文件夹;对于其他脚本,例如字符串脚本,则为<code>null</code>或者执行时的设置值。</p>
<h1>ScriptConfig<span><a class="mark" href="#engines_scriptconfig" id="engines_scriptconfig">#</a></span></h1>
<p>脚本执行时的配置。</p>
<h2>delay<span><a class="mark" href="#engines_delay" id="engines_delay">#</a></span></h2>
<p>延迟执行的毫秒数</p>
<div class="signature"><ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a></li>
</ul>
</div><p>延迟执行的毫秒数</p>
<h2>interval<span><a class="mark" href="#engines_interval" id="engines_interval">#</a></span></h2>
<p>循环运行时两次运行之间的时间间隔</p>
<div class="signature"><ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a></li>
</ul>
</div><p>循环运行时两次运行之间的时间间隔</p>
<h2>loopTimes<span><a class="mark" href="#engines_looptimes" id="engines_looptimes">#</a></span></h2>
<p>循环运行次数</p>
<div class="signature"><ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type" class="type">&lt;number&gt;</a></li>
</ul>
</div><p>循环运行次数</p>
<h2>getPath()<span><a class="mark" href="#engines_getpath" id="engines_getpath">#</a></span></h2>
<p>返回一个字符串数组表示脚本运行时模块寻找的路径。</p>
<h1>ScriptSource<span><a class="mark" href="#engines_scriptsource" id="engines_scriptsource">#</a></span></h1>
<p>脚本执行时的源码对象。可以是字符串源码、文件源码等。</p>
<p>如果该源码是文件脚本,则可以通过<code>toString()</code>得到该文件的路径。</p>
<h2>getName()<span><a class="mark" href="#engines_getname" id="engines_getname">#</a></span></h2>
<p>返回该源码的名称。</p>
<h2>getEngineName()<span><a class="mark" href="#engines_getenginename" id="engines_getenginename">#</a></span></h2>
<p>返回执行该源码的脚本引擎的名称。</p>
<div class="signature"><ul>
<li>返回 <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a></li>
</ul>
</div><p>返回一个字符串数组表示脚本运行时模块寻找的路径。</p>
</div>
</div>